Tools/bootloaders/README.md
The main ArduPilot for STM32 boards is based on ChibiOS, and the source code is in Tools/AP_Bootloader
The old bootloader (now unused) was based on libopencm3.
Binaries for the bootloader for all supported STM32 boards are in this directory. You can build one of these bootloaders using the Tools/scripts/build_bootloaders.py script. That script takes a wildcard pattern of which boards to build. For example, to build a bootloader for a Pixhawk1, use:
./Tools/scripts/build_bootloaders.py Pixhawk1
The config files for the builds of these bootloaders are in libraries/AP_HAL_ChibiOS/hwdef, in the files called hwdef-bl.dat
We also have copies of binaries for some of the older bootloaders in this directory. They are:
iomcu_bl.bin: for IOMCU on fmuv2
skyviper_v2450_bl.bin: for F427 based skyviper-v2450 boards (based on fmuv3) reserves sectors 22 and 23 for ArduPilot storage board ID 9
skyviperf412_bl.bin: For F412 processors, setup to load on USART2 on pins PA2/PA3 Setup for code start at 0x0800C000 2 sectors reserved for storage, plus bootloader
When building a ChibiOS based build, if there is a corresponding bootloader in Tools/bootloaders for the board then that bootloader will be included as a compressed file in ROMFS. You can then ask ArduPilot to update the bootloader using the MAVLink command MAV_CMD_FLASH_BOOTLOADER command using a param5 magic value of 290876