The table below lists a sample of the range of 184 parts for which urboot compiles. It shows their features alongside vanilla optiboot and its larger bigboot variant for EEPROM access. The non-autobaud examples are mostly for a 16 MHz MCU and 115,200 baud serial communication speed, except for the ATtiny167 (8 MHz LINUART) and one ATmega328P example (8 MHz SWIO).
- Size: Bootloader code size including small table at top end
- Usage: How many bytes of flash are needed, ie, HW boot section or a multiple of the page size
- Version: For example, u8.0 is an urboot version, o8.3 is an optiboot version
- Features:
w
bootloader providespgm_write_page(sram, flash)
for the application atFLASHEND-4+1
e
EEPROM read/write supportU
checks whether flash pages need writing before doing sos
uses skeleton of STK500v1 protocol (only u7.7);-c urclock
and-c arduino
both OKd
dual boot (over-the-air programming from external SPI flash)h
hardware boot section: make sure fuses are set for reset to jump to boot sectionj
vector bootloader: applications need to be patched externally, eg, usingavrdude -c urclock
p
bootloader protects itself from being overwrittenP
vector bootloader only: protects itself and reset vector from being overwrittenr
preserves reset flags for the application in the register R2a
autobaud detection (f_cpu/8n using discrete divisors, n = 1, 2, ..., 256)c
bootloader provides chip erase functionality (recommended for large MCUs)-
corresponding feature not present
- Hex file: often qualified by the MCU name and/or configuration
1s
watchdog timeout, ie, time window for upload after external resetx16m0
is FCPU of an external oscillator, here 16.0 MHz115k2
shows the fixed communication baud rate, here 115200 baudautobaud
detects host baud rate f/8, f/16, f/24, ..., f/2048 (f=FCPU)swio
software I/O (not UART)uart0
UART numberrxd0 txd1
I/O using, in this example, lines RXD0
and TXD1
led+b5
toggles an active-high (+
) LED on pinB5
lednop
is a template bootloader withmov rx,rx
nops as placeholders for LED operationscsb0
uses pin B0 as chip select of external SPI flash memory for dual boottemplate
bootloaders containsmov rx,rx
nops as placeholders for LED and CS operationsdual
can upload from external SPI flash memory and from serial interfacepr
vector bootloader protecting the reset vectoree
bootloader supports EEPROM read/writece
bootloader provides a chip erase commandhw
hardware supported bootloader: set fuses to jump to the HW boot section, not to addr 0stk500
uses deprecated STK500v1 protocol to communicate with bootloader
Note that the classic UART on an 8 MHz ATmega328P cannot produce 115200 baud within a 2.5% tolerance; the 8 MHz examples shown use software I/O that allows for a finer baud granularity. In contrast to this, the LIN/UART of an 8 MHz ATtiny167 can produce 115200 baud within 1% tolerance.