Оновлення завантажувача
PX4 Bootloader використовується для завантаження прошивки для Pixhawk boards (PX4FMU, PX4IO).
Зазвичай контролери Pixhawk поставляються з попередньо встановленою відповідною версією завантажувача. Однак у деяких випадках його може бути відсутній, або може бути присутня старіша версія, яку потрібно оновити, або плата може бути відключена і потребує стирання та перевстановлення завантажувача.
Ця тема пояснює, як побудувати завантажувач PX4 та кілька методів для його прошивки на плату.
INFO
- You can use QGC Bootloader Update with firmware that includes the
bl-update
module. This is the easiest way to update the bootloader, provided the board is able to load firmware. - You can also use the Debug Probe to update the bootloader. This is useful for updating/fixing the bootloader when the board is bricked.
- На FMUv6X-RT ви можете встановлювати завантажувач/відновлювати плати через USB. Це корисно, якщо у вас немає тесту налагодження.
QGC Bootloader Update (SYS_BL_UPDATE
)
The easiest way to update the bootloader is to first use QGroundControl to install firmware that contains the desired/latest bootloader. Ви можете ініціювати оновлення завантажувача при наступному перезавантаженні, встановивши параметр: SYS_BL_UPDATE.
This approach can be used if the bl-update
module is present in the firmware. The easiest way to check this is just to see if the SYS_BL_UPDATE parameter is found in QGroundControl.
WARNING
Boards that include the module will have the line CONFIG_SYSTEMCMDS_BL_UPDATE=y
in their default.px4board
file (for examples see this search). You can enable this key in your own custom firmware if needed.
Кроки наступні:
Вставте SD-карту (це дозволяє реєструвати журнали завантаження для відлагодження будь-яких проблем).
Оновіть прошивку з образом, що містить новий/потрібний завантажувач.
INFO
The updated bootloader might be included the default firmware for your board or supplied in custom firmware.
Зачекайте, доки транспортний засіб перезавантажиться.
Знайдіть та увімкніть параметр SYS_BL_UPDATE.
Перезавантажте (відключіть / підключіть плату). Оновлення завантажувача займе лише кілька секунд.
Зазвичай на цьому етапі ви можливо захочете оновити прошивку ще раз, використовуючи правильно/ново встановлений загрузчик.
An specific example of this process for updating the FMUv2 bootloader is given below.
Створення завантажувача PX4
PX4 Bootloader FMUv6X та новіші
Плати, що починаються з FMUv6X (STM32H7), використовують вбудований завантажувач PX4.
Це можна побудувати з каталогу PX4-Autopilot, використовуючи команду make
та конкретну для плати ціль з суфіксом _bootloader
.
Для FMUv6X команда наступна:
sh
make px4_fmu-v6x_bootloader
Це збудує бінарний файл завантажувача як build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloader.elf
, який можна прошити через SWD або DFU. Якщо ви збираєте завантажувач, вам вже повинні бути знайомі з одним із цих варіантів.
Якщо вам потрібний файл у форматі HEX замість ELF файлу, використовуйте objcopy:
sh
arm-none-eabi-objcopy -O ihex build/px4_fmu-v6x_bootloader/px4_fmu-v6x_bootloader.elf px4_fmu-v6x_bootloader.hex
PX4 Bootloader FMUv5X та раніші версії
Плата PX4 до FMUv5X (до STM32H7) використовувала репозиторій завантажувача PX4.
Інструкції в README репозиторію пояснюють, як його використовувати.
Оновлення завантажувача Debug Probe
Наступні кроки пояснюють, як ви можете "вручну" оновити завантажувач за допомогою сумісного Відладного пристрою:
Отримайте бінарний файл, який містить завантажувальник (або від команди розробників, або зіберіть його самостійно).
Get a Debug Probe. Підключіть зонд до комп'ютера за допомогою USB та налаштуйте
gdbserver
.Перейдіть до каталогу, що містить бінарний файл, і запустіть команду для обраного вами завантажувача в терміналі:
FMUv6X
sharm-none-eabi-gdb px4_fmu-v6x_bootloader.elf
FMUv6X-RT
sharm-none-eabi-gdb px4_fmu-v6xrt_bootloader.elf
FMUv5
sharm-none-eabi-gdb px4fmuv5_bl.elf
H7 Завантажувачі з PX4/PX4-Autopilot мають назву за шаблоном *._bootloader.elf
. Завантажувачі з PX4/PX4-Bootloader мають назву за шаблоном *_bl.elf
.
:::
- Термінал gdb з'являється, і він повинен відображати такий вивід:
sh
GNU gdb (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 8.0.50.20171128-git
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from px4fmuv5_bl.elf...done.
Find your
<dronecode-probe-id>
by running anls
command in the /dev/serial/by-id directory.Тепер підключіться до debug probe з наступною командою:
sh
tar ext /dev/serial/by-id/<dronecode-probe-id>
- Увімкніть Pixhawk за допомогою іншого USB-кабелю та під’єднайте зонд до порту
FMU-DEBUG
.
INFO
Якщо ви використовуєте зонд Dronecode, вам може знадобитися зняти футляр, щоб підключитися до порту FMU-DEBUG
(наприклад, на Pixhawk 4 це можна зробити за допомогою викрутки T6 Torx).
- Використовуйте таку команду, щоб знайти SWD Pixhawk і підключитися до нього:
sh
(gdb) mon swdp_scan
(gdb) attach 1
- Завантажте двійковий файл в Pixhawk:
sh
(gdb) load
Після оновлення завантажувача ви можете завантажити прошивку PX4 за допомогою QGroundControl.
Оновлення завантажувача FMUv2
Якщо QGroundControl встановлює ціль FMUv2 (див. консоль під час встановлення), і у вас є новіша плата, вам може знадобитися оновити завантажувальник, щоб мати доступ до всієї пам'яті на вашому контролері польоту. This example explains how you can use QGC Bootloader Update to update the bootloader.
INFO
Ранні контролери польоту FMUv2 Pixhawk-series мали апаратну проблему, яка обмежувала їх використання 1 Мб флеш-пам’яті. Проблема виправлена на новіших платах, але вам може знадобитися оновити заводський завантажувальник, щоб встановити прошивку FMUv3 та мати доступ до всієї доступної пам'яті у 2 МБ.
Щоб оновити завантажувач:
Вставте SD-карту (це дозволяє реєструвати журнали завантаження для відлагодження будь-яких проблем).
Оновіть програмне забезпечення до версії PX4 master (під час оновлення програмного забезпечення перевірте Розширені налаштування і виберіть Розробницьку збірку (master) із випадаючого списку). QGroundControl автоматично виявить, що апаратне забезпечення підтримує FMUv2 і встановить відповідне програмне забезпечення.
Зачекайте, доки транспортний засіб перезавантажиться.
Знайдіть та увімкніть параметр SYS_BL_UPDATE.
Перезавантажте (відключіть / підключіть плату). Оновлення завантажувача займе лише кілька секунд.
Тоді знову Оновити програмне забезпечення. На цей раз QGroundControl повинен автоматично визначити обладнання як FMUv3 і відповідним чином оновити програмне забезпечення.
INFO
Якщо апаратне забезпечення має Помилки в кремнієвій мікросхемі, воно все одно буде виявлене як FMUv2, і ви побачите, що FMUv2 було знову встановлено (у консолі). У цьому випадку ви не зможете встановити апаратне забезпечення FMUv3.
Інші плати (не Pixhawk)
Плати, які не є частиною серії Pixhawk, матимуть власні механізми оновлення завантажувача.
Для плат, які передвстановлені за допомогою Betaflight, дивіться Flash пусковика на системи Betaflight.