ardupilot/Tools/AP_Bootloader
Thomas Watson 4df758f52a AP_Bootloader: reject allocation of broadcast node ID
It is technically legal to receive an "allocation" of the broadcast node
ID. Fortunately, this was already ignored by `canardSetLocalNodeID`,
though it would trigger an assertion failure if those were enabled.

Fix by rejecting that ID. There is effectively no change in behavior but
the code now correctly ignores that ID and retries the allocation as it
did before.
2024-10-08 11:52:05 +11:00
..
Web AP_Bootloader: added progress and status to fw upload 2024-01-21 12:30:08 +11:00
AP_Bootloader.cpp AP_Bootloader: fix build for STM32H7 without heap 2024-07-24 17:30:23 +10:00
AP_Bootloader_config.h AP_Bootloader: added option web interface to the bootloader 2024-01-21 12:30:08 +11:00
README.md
app_comms.h AP_Bootloader: use IP address from periph if available 2024-01-21 12:30:08 +11:00
bl_protocol.cpp AP_Bootloader: add support for secondary FC bootloader to appear on second USB endpoint 2024-06-19 19:09:10 +10:00
bl_protocol.h Tools: add LED notification for bad firmware 2022-08-30 10:51:06 +10:00
board_types.txt board_types.txt: reservie ID for F4 2-3S 20A AIO FC V1 2024-10-08 08:16:01 +11:00
can.cpp AP_Bootloader: reject allocation of broadcast node ID 2024-10-08 11:52:05 +11:00
can.h AP_Bootloader: support CAN multicast server 2024-09-17 10:02:29 +10:00
custom.cpp AP_Bootloader: added custom LED reset for Here4AP 2023-08-01 11:38:03 +10:00
flash_from_sd.cpp AP_Bootloader: correct definition of function to match declaration 2024-09-25 08:48:44 +10:00
flash_from_sd.h AP_Bootloader: add SD card support to bootloader 2023-02-28 11:26:04 +11:00
mcu_f1.h AP_Bootloader: save a few byts contructing MCU string 2023-04-19 19:05:14 +10:00
mcu_f3.h AP_Bootloader: save a few byts contructing MCU string 2023-04-19 19:05:14 +10:00
mcu_f4.h AP_Bootloader: save a few byts contructing MCU string 2023-04-19 19:05:14 +10:00
mcu_f7.h AP_Bootloader: save a few byts contructing MCU string 2023-04-19 19:05:14 +10:00
mcu_g4.h AP_Bootloader: save a few byts contructing MCU string 2023-04-19 19:05:14 +10:00
mcu_h7.h AP_Bootloader: add H73x MCU ID and produce pretty output 2023-04-28 08:31:15 +10:00
mcu_l4.h AP_Bootloader: save a few byts contructing MCU string 2023-04-19 19:05:14 +10:00
md5.cpp AP_Bootloader: add SD card support to bootloader 2023-02-28 11:26:04 +11:00
md5.h AP_Bootloader: add SD card support to bootloader 2023-02-28 11:26:04 +11:00
network.cpp AP_Bootloader: support CAN multicast server 2024-09-17 10:02:29 +10:00
network.h AP_Bootloader: add support for printing current firmware and boot status 2024-02-21 18:54:17 +11:00
support.cpp AP_Bootloader: support CAN multicast server 2024-09-17 10:02:29 +10:00
support.h AP_Bootloader: support CAN multicast server 2024-09-17 10:02:29 +10:00
wscript AP_Booloader: link in AP_Common 2024-06-04 09:20:21 +10:00

README.md

ArduPilot Bootloader

This is the bootloader used for STM32 boards for ArduPilot. To build the bootloader do this:

 ./waf configure --board BOARDNAME --bootloader
 ./waf bootloader

the bootloader will be in build/BOARDNAME/bin. If you have the intelhex module installed it will build in both bin format and hex format. Both are usually uploaded with DFU. The elf file will be in build/BOARDNAME/AP_Bootloader for loading with gdb.

The --bootloader option tells waf to get the hardware config from the hwdef-bl.dat file for the board. It will look in libraries/AP_HAL_CHibiOS/hwdef/BOARDNAME/hwdef-bl.dat

The bootloader protocol is compatible with that used by the PX4 project for boards like the Pixhawk. For compatibility purposes we maintain a list of board IDs in the board_types.txt file in this directory.

the board IDs in that file match the APJ_BOARD_ID in the hwdef.dat and hwdef-bl.dat files

The bootloader can load from USB or UARTs. The list of devices to load from is given in the SERIAL_ORDER option in hwdef-bl.dat