对于 PX4 Firmware 的调试,有别于传统的单片机单步调试,没有办法仿真,因为是多线程程序,也没有好的集成编译环境。主要还是靠串口打印来调试数据。在 Pixhawk 飞控上有一个 USB 的接口,如果想要进入串口打印调试终端 nsh ,就必须拔掉 SD 卡,然后用 USB 口连接电脑,否则不能进入 nsh 终端。
注意: 对于 Firmware 1.5.4 版本,其更改了 rcS 启动文件,导致 nsh 始终乱码,修改方式如下:
新固件 (line649)
# Start MAVLink
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
\end{lstlisting}
按老固件方法加一个判断
\begin{lstlisting}
# Start USB shell if no microSD present, MAVLink else
if [ $LOG_FILE == /dev/null ]
then
# Try to get an USB console
nshterm /dev/ttyACM0 &
else
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
fi
进而 make 并 upload 即可。
新手玩家第一次进行 USB 或者串口连接系统命令行终端,请先按照要求进行系统控制台安装。
Windows
NuttShell(nsh) 和 Unix 终端命令类似。 NSH 通过串口或者 USB 转串口来与 PX4FMU