1.5 KiB
ArduPilot Bootloader
The main ArduPilot for STM32 boards is based on ChibiOS, and the source code is in Tools/AP_Bootloader
The old (now unusued) bootloader was based on libopencm3, and a copy of that is here:
https://github.com/ArduPilot/Bootloader
Bootloader images
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
Old Bootloader details
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
Bootloader in ROMFS
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