1.10 Bootloader
All devices come pre-programmed with a USB bootloader. This bootloader resides in the code security page and last pages of code
flash; it can be erased if it is not needed.
The byte before the Lock Byte is the Bootloader Signature Byte. Setting this byte to a value of 0xA5 indicates the presence of the boot-
loader in the system. Any other value in this location indicates that the bootloader is not present in flash.
When a bootloader is present, the device will jump to the bootloader vector after any reset, allowing the bootloader to run. The boot-
loader then determines if the device should stay in bootload mode or jump to the reset vector located at 0x0000. When the bootloader
is not present, the device will jump to the reset vector of 0x0000 after any reset.
More information about the bootloader protocol and usage can be found in
AN945: EFM8 Factory Bootloader User Guide
. Application
notes can be found on the Silicon Labs website (
) or within Simplicity Studio in the [
Documentation
]
area.
Reserved
0xFBFF
0x0000
Bootloader Vector
Reset Vector
0x9A00
Bootloader
Security Page
512 Bytes
0xFA00
0xFBFE
Lock Byte
0xFBFD
Bootloader Signature Byte
Bootloader
40 KB Flash
(79 x 512 Byte pages)
0x9DFF
Read-Only
64 Bytes
0xFFC0
0xFFFF
Read-Only
64 Bytes
0xFFC0
0xFFFE
0xFFFF
Memory Lock
128-bit UUID
0xFFCF
0xFFD0
Reserved
Figure 1.2. Flash Memory Map with Bootloader—40 KB Devices
Table 1.2. Summary of Pins for Bootloader Communication
Bootloader
Pins for Bootload Communication
USB
VBUS
D+
D-
EFM8UB3 Reference Manual
System Overview
silabs.com
| Building a more connected world.
Rev. 0.2 | 21