Skip to content

Instantly share code, notes, and snippets.

@tstellanova
Last active August 5, 2020 18:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tstellanova/d300fe150cdfb312c9ae1900c5288045 to your computer and use it in GitHub Desktop.
Save tstellanova/d300fe150cdfb312c9ae1900c5288045 to your computer and use it in GitHub Desktop.
Embedded board bootloaders and their quirks

Micropython

  • Source code
  • Allows firmware update via USB (and possibly other methods?)
  • The is 128 kB minimum, some boards reserve 256 kB (eg OpenMV)
  • The jump address varies depending on the board
  • Example: OpenMV H7 board bootloader is 128 kB in size, reserves 256 kB in flash, and has an application jump address of 0x8040000

PX4

  • Source code
  • Allows firmware update via USB, CAN (and other?)
  • The size varies depending on the board. Common sizes are 16 kB and 32 kB.
  • The jump address varies depending on the board (and size). Search APP_LOAD_ADDRESS in hw_config.h
  • Example: PX4FLOW board bootloader is 16 kB in size and has an application jump address of 0x08004000

Cleanflight

  • Source code
  • Allows firmware update via USB (and others?)
  • The size varies widely depending on the board, from 16 kB - 128 kB currently.
  • The jump address varies depending on the board (and size)
  • Example: One stm32h743 bootloader is 128 kB in size, reserves another 128 kB for configuration, and has an application jump address of 0x08040000

STM32-duino Arduino bootloader for STM32

  • Source code
  • Allows same firmware update methods as older Arduino bootloader
  • Size is 8 kB, and only a limited set of STM32 boards are supported (eg stm32f103)
  • Application jump address is 0X8002000

Adafruit ntf52 Arduino

Adafruit nrf52

Caterina

MCUboot

  • Source code
  • Compiled into eg Zephyr and MyNewt binaries
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment