Оновлення завантажувача
Завантажувач PX4 використовується для завантаження прошивки для плат Pixhawk (PX4FMU, PX4IO).
Зазвичай контролери Pixhawk поставляються з попередньо встановленою відповідною версією завантажувача. Однак у деяких випадках його може бути відсутній, або може бути присутня старіша версія, яку потрібно оновити, або плата може бути відключена і потребує стирання та перевстановлення завантажувача.
Ця тема пояснює, як побудувати завантажувач PX4 та кілька методів для його прошивки на плату.
:::note
- Більшість плат потребують використання Debug Probe для оновлення завантажувача.
- На FMUv6X-RT ви можете встановлювати завантажувач/відновлювати плати через USB. Це корисно, якщо у вас немає тесту налагодження.
- У FMUv2 та деяких нестандартних прошивках (тільки) ви можете використовувати Оновлення завантажувача QGC. :::
Створення завантажувача 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
:::note H7 Завантажувачі з PX4/PX4-Autopilot мають назву за шаблоном *._bootloader.elf
. Завантажувачі з PX4/PX4-Bootloader мають назву за шаблоном *_bl.elf
. :::
Термінал gdb з'являється, і він повинен відображати такий вивід:
shGNU 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 з наступною командою:
shtar ext /dev/serial/by-id/<dronecode-probe-id>
Увімкніть Pixhawk за допомогою іншого USB-кабелю та під’єднайте зонд до порту
FMU-DEBUG
.Якщо ви використовуєте зонд Dronecode, вам може знадобитися зняти футляр, щоб підключитися до порту
FMU-DEBUG
(наприклад, на Pixhawk 4 це можна зробити за допомогою викрутки T6 Torx).
:::
Використовуйте таку команду, щоб знайти SWD Pixhawk і підключитися до нього:
sh(gdb) mon swdp_scan (gdb) attach 1
Завантажте двійковий файл в Pixhawk:
sh(gdb) load
Після оновлення завантажувача ви можете завантажити прошивку PX4 за допомогою QGroundControl.
Оновлення завантажувача QGC
Найпростіший підхід - спочатку використовуйте QGroundControl, щоб встановити прошивку, яка містить потрібний/останній завантажувач. Ви можете ініціювати оновлення завантажувача при наступному перезавантаженні, встановивши параметр: SYS_BL_UPDATE.
Такий підхід можна використовувати лише у випадку, якщо параметр SYS_BL_UPDATE присутній у прошивці.
WARNING
Наразі бажаний завантажувач міститься лише в FMUv2 та деяких спеціальних програмних вибірках.
Кроки такі:
Вставте SD-карту (це дозволяє реєструвати журнали завантаження для відлагодження будь-яких проблем).
Оновіть прошивку з образом, що містить новий/потрібний завантажувач.
:::note Оновлений завантажувач може бути постачений у власній прошивці (наприклад, від команди розробників), або він може бути включений у останню головну гілку. :::
Зачекайте, доки транспортний засіб перезавантажиться.
Знайдіть та увімкніть параметр SYS_BL_UPDATE.
Перезавантажте (відключіть / підключіть плату). Оновлення завантажувача займе лише кілька секунд.
Зазвичай на цьому етапі ви можливо захочете оновити прошивку ще раз, використовуючи правильно/ново встановлений загрузчик.
Наведений нижче конкретний приклад цього процесу оновлення загрузчика FMUv2.
Оновлення завантажувача FMUv2
Якщо QGroundControl встановлює ціль FMUv2 (див. консоль під час встановлення), і у вас є новіша плата, вам може знадобитися оновити завантажувальник, щоб мати доступ до всієї пам'яті на вашому контролері польоту.
:::note Ранні контролери польоту FMUv2 Pixhawk-series мали апаратну проблему, яка обмежувала їх використання 1 Мб флеш-пам’яті. Проблема виправлена на новіших платах, але вам може знадобитися оновити заводський завантажувальник, щоб встановити прошивку FMUv3 та мати доступ до всієї доступної пам'яті у 2 МБ. :::
Щоб оновити завантажувач:
Вставте карту SD (це дозволить вести журналювання завантаження для відлагодження будь-яких проблем).
Оновіть програмне забезпечення до версії PX4 master (під час оновлення програмного забезпечення перевірте Розширені налаштування і виберіть Розробницьку збірку (master) із випадаючого списку). QGroundControl автоматично виявить, що апаратне забезпечення підтримує FMUv2 і встановить відповідне програмне забезпечення.
Зачекайте, доки пристрій перезавантажиться.
Знайдіть та увімкніть параметр SYS_BL_UPDATE.
Перезавантажте (відключіть / підключіть плату). Оновлення завантажувача займе лише кілька секунд.
Тоді знову Оновити програмне забезпечення. На цей раз QGroundControl повинен автоматично визначити обладнання як FMUv3 і відповідним чином оновити програмне забезпечення.
:::note Якщо апаратне забезпечення має Помилки в кремнієвій мікросхемі, воно все одно буде виявлене як FMUv2, і ви побачите, що FMUv2 було знову встановлено (у консолі). У цьому випадку ви не зможете встановити апаратне забезпечення FMUv3. :::
Інші плати (не Pixhawk)
Плати, які не є частиною серії Pixhawk, матимуть власні механізми оновлення завантажувача.
Для плат, які передвстановлені за допомогою Betaflight, дивіться Flash пусковика на системи Betaflight.