跳至内容

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 限制的电路板,固件中不包含某些模块)。在这种情况下,您将看到响应: 命令未找到