Консолі/Оболонки PX4
PX4 дозволяє термінальний доступ до системи через Оболонку MAVLink та Системну консоль.
Ця сторінка пояснює основні відмінності та як використовується консоль/оболонка.
Системна консоль у порівнянні з оболонкою
Системна консоль PX4 забезпечує низькорівневий доступ до системи, виводу налагодження та аналізу процесу завантаження системи.
Є лише одна _Системна консоль _, яка працює на одному конкретному UART (порт налагодження, як налаштовано в NuttX) та зазвичай під'єднана до комп'ютера за допомогою кабелю FTDI (або якогось іншого адаптера для налагодження, наприклад, зонда Dronecode).
- Використовується для низькорівневого налагодження/розробки: завантаження, NuttX, скриптів запуску, запуску плати, розробки центральних частин PX4 (наприклад uORB).
- Зокрема, це єдине місце, де виводиться весь вивід завантаження (включаючи інформацію про програми, які автоматично запускаються при завантаженні).
Оболонки надають високорівневий доступ до системи:
- Використовується для базового тестування модулів/виконання команд.
- Лише безпосередньо показує вивід модулів, які ви запускаєте.
- Не може безпосередньо показувати вивід завдань, запущених у робочій черзі.
- Не може налагоджувати проблеми, коли система не запускається (оскільки вона ще не працює).
Команда dmesg
тепер доступна через оболонку на деяких платах, що дозволяє набагато більш низькорівневе налагодження, ніж раніше було можливо. Наприклад, за допомогою dmesg -f &
ви також бачите вивід фонових завдань.
Може бути кілька оболонок, які працюють на відведеному UART або через MAVLink. Оскільки MAVLink надає більшу гнучкість, наразі використовується лише Оболонка MAVLink.
Системна консоль є необхідною, коли система не завантажується (вона відображає журнал завантаження системи при перезапуску плати за живленням). MAVLink Shell набагато легше налаштувати, тому як правило рекомендується для налагодження загалом.
Використання Консолі/Оболонки
Консоль/оболонка MAVLink та Системна консоль використовуються практично однаково.
Наприклад, введіть ls
, щоб переглянути локальну файлову систему, free
, щоб переглянути доступну вільну оперативну пам'ять, dmesg
, щоб подивитися вивід завантаження.
sh
nsh> ls
nsh> free
nsh> dmesg
Нижче наведено кілька команд, які можна використати в NuttShell, щоб отримати уявлення про систему.
Ця команда NSH надає доступну вільну пам'ять:
sh
free
Команда top показує використання стеку для кожного додатку:
sh
top
Зверніть увагу, що використання стеку обчислюється за допомогою алгоритму забарвлення стеку та є максимумом з моменту початку завдання (а не поточним використанням).
Щоб побачити, що виконується у робочих чергах і з якою швидкістю, використовуйте:
sh
work_queue status
Для налагодження тем uORB:
sh
uorb top
Для перевірки певної рубрики uORB:
sh
listener <topic_name>
Багато інших системних команд та модулів перелічені в Довіднику модулів та команд (наприклад, top
, listener
тощо).
TIP
Деякі команди можуть бути вимкнені на деяких платах (тобто деякі модулі не включені в прошивку для плат з обмеженнями по ОП або FLASH). У цьому випадку ви побачите відповідь: command not found