当前位置: 首页 > 文档资料 > PX4 开发指南 >

Debugging/Logging - 系统控制台

优质
小牛编辑
130浏览
2023-12-01

translated_page: https://github.com/PX4/Devguide/blob/master/en/debug/system_console.md

translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e

PX4 System Console(系统控制台)

System Console(系统控制台)允许访问系统底层,调试输出和分析系统启动流程。访问System Console最快捷的方式是使用 Dronecode probe, 但是常见的FTDI连线也是可以的。

System Console vs. Shell

有好多种shell,但只有一个Console:系统控制台,它是打印所有引导输出(和引导中自动启动的应用程序)的位置。(可以理解为系统控制台是多个shell中唯一一个打印所有引导输出的shell)

The system console is the location where all boot output (and applications auto-started on boot) is printed.

  • System console(第一shell):硬件串口
  • 其他shell : 连接至USB的Pixhawk(如Mac OS下显示为 /dev/tty.usbmodem1)

info
USB shell: 如果只是运行几个简单的命令或测试应用程序,连接到USB shell就足够了。
MAVLink shell可以这么使用,参照下文。
只有在调试启动流程或USB接口已被用于MAVlink连接地面站GCS的时候,才需要使用硬件串口console。

Snapdragon Flight : Console接线

Snapdragon Flight(骁龙开发平台)开发人员套件里面包含了一个3引脚的接线板,它可以用于访问console。 将附带的FTDI线连接到接头,并将接线板连接到扩展连接器。

Pixracer / Pixhawk v3: Console接线

将6P JST SH 1:1线连接到Dronecode Probe,或者将连接线的每个引脚按照如下所示连接到FTDI线上:

Pixracer / Pixhawk v3FTDI
1+5V (红)N/C
2UART7 Tx5FTDI RX (黄)
3UART7 Rx4FTDI TX (橙)
4SWDION/C
5SWCLKN/C
6GND1FTDI GND (黑)

Pixhawk v1: Console连线

系统console可以通过Dronecode Probe或FTDI线访问。两种方式将在下面介绍。

通过Dronecode Probe连接

Dronecode probe 的6P DF13 1:1线连接到Pixhawk的SERIAL4/5接口。

系统控制台 - 图1

通过FTDI 3.3V 线连接

如果手头没有Dronecode Probe,也可以使用FTDI 3.3V (Digi-Key: 768-1015-ND) 。

Pixhawk 1/2FTDI
1+5V (红)N/C
2S4 TxN/C
3S4 RxN/C
4S5 Tx5FTDI RX (黄)
5S5 Rx4FTDI TX (橙)
6GND1FTDI GND (黑)

连接器引脚接线如下图所示。

系统控制台 - 图2

完整的接线如下图所示。

系统控制台 - 图3

打开Console

Console接线完成后, 使用你选择的默认串口工具或者下面描述的默认工具:

Linux / Mac OS: Screen

Ubuntu下安装screen (Mac OS 已经默认安装了):

  1. sudo apt-get install screen
  • 串口: Pixhawk v1 / Pixracer 使用 57600 波特率
  • 串行: Snapdragon Flight 使用 115200 波特率

按照 BAUDRATE baud, 8 data bits, 1 stop bit 将screen连接至正确的串口(使用 ls /dev/tty*命令,观察在拔下/重插USB设备时什么发生了变化)。Linux下的常见名称是 /dev/ttyUSB0/dev/ttyACM0 ,Mac OS下是/dev/tty.usbserial-ABCBD

  1. screen /dev/ttyXXX BAUDRATE 8N1

Windows: PuTTY

下载 PuTTY 并启动它。

选择“串口连接”,然后设置串口参数:

  • 57600 baud
  • 8 data bits
  • 1 stop bit

Console入门

输入ls查看本地文件系统,输入free查看剩余可用RAM。当飞控板带电重启时,console也可以显示系统启动日志。

  1. nsh> ls
  2. nsh> free

MAVLink Shell

对于基于NuttX的系统(Pixhawk,Pixracer,…),也可以通过mavlink访问nsh console。它通过串口连接或WiFi(UDP/TCP)来工作。确保没有运行QGC,然后使用如下命令启动shell./Tools/mavlink_shell.py /dev/ttyACM0(在固件源代码中)。使用-h获得所有可用参数的描述。也许你先要使用sudo pip install pymavlink pyserial安装依赖文件。

Snapdragon DSP Console

当通过USB连接到Snapdragon开发板,你可以访问PX4 shell操作posix相关资源 。与DSP侧(QuRT)的交互可以通过qshellposix应用程序及其QuRT companion。

将Snapdragon通过USB连接后,打开mini-dm就可以看到DSP的输出:

  1. ${HEXAGON_SDK_ROOT}/tools/debug/mini-dm/Linux_Debug/mini-dm

注意: 可选方法,尤其是在Mac上,你也可以使用 nano-dm

在linaro侧运行主程序:

  1. cd /home/linaro
  2. ./px4 px4.config

你可以通过linaro shell使用DSP加载的所有的应用程序,通过以下语法:

  1. pxh> qshell command [args ...]

例如,要查看可用QuRT应用程序:

  1. pxh> qshell list_tasks

所执行命令的输出显示在minidm上。