PX4 控制台/外壳
PX4 允许终端通过 MAVLink 外壳 和 系统控制台.
本页将介绍控制台/Shell 的主要区别和使用方法。
系统控制台与外壳
PX4 系统控制台 提供对系统的底层访问、调试输出和系统启动过程分析。
只有一个 系统控制台,它在一个特定的 UART(在 NuttX 中配置的调试端口)上运行,通常通过 FTDI 电缆(或其他调试适配器,如 Dronecode 探头).
- 用于 低级调试/开发包括:启动、NuttX、启动脚本、板卡调用、PX4 核心部分(如 uORB)的开发。
- 特别是,它是打印所有启动输出(包括启动时自动启动的应用程序信息)的唯一地方。
Shell 提供更高级别的系统访问权限:
- 用于基本模块测试/运行命令。
- 只有 直接 显示所启动模块的输出。
- 不能 直接 显示工作队列中运行任务的输出。
- 当系统未启动(因为尚未运行)时,无法调试问题。
信息
dmesg
命令现在可以在某些电路板上通过 shell 调用,从而实现比以前更低级的调试。例如,使用 dmesg -f &;
还能看到后台任务的输出。
可以有多个外壳,既可以在专用 UART 上运行,也可以通过 MAVLink 运行。由于 MAVLink 提供了更大的灵活性,目前只有 MAVLink 外壳 使用。
系统控制台 在系统无法启动时非常重要(它会在重启电路板时显示系统启动日志)。系统 MAVLink 外壳 更容易设置,因此在大多数调试中更推荐使用。
使用控制台/外壳
MAVLink 外壳/控制台和 系统控制台 的使用方法大致相同。
例如,键入 ls
来查看本地文件系统、 免费的
查看剩余的可用内存、 dmesg
查看启动输出。
nsh>; ls
nsh>; 免费的
nsh>; dmesg
下面是几条命令,可以在 果壳 以深入了解系统。
该 NSH 命令提供剩余的可用内存:
免费的
顶部命令显示每个应用程序的堆栈使用情况:
顶级
请注意,堆栈使用量是通过堆栈着色计算的,是任务开始以来的最大值(而不是当前使用量)。
要查看工作队列中正在运行的内容和运行速度,请使用
工作队列 地位
调试 uORB 主题:
uorb 顶级
检查特定的 uORB 主题:
听众 <;topic_name>;
中列出了许多其他系统命令和模块。 模块和命令参考 例如 顶级
, 听众
等)。
TIP
某些命令在某些电路板上可能被禁用(例如,对于有 RAM 或 FLASH 限制的电路板,固件中不包含某些模块)。在这种情况下,您将看到响应: 命令未找到