# 用于 PX4 的 MCU Eclipse/J-Link 调试

本主题介绍如何设置和使用 MCU Eclipse (打开新窗口)Segger Jlink 适配器 来调试在 NuttX(如 Pixhawk 系列板卡)上运行的 PX4。

# 所需硬件

# 安装

# PX4

按照常规指南设置 PX4:

# 日蚀

安装 日蚀:

  1. 下载 面向 C/C++ 开发人员的 Eclipse CDT (打开新窗口) (MCU GitHub)。
  2. 解压 Eclipse 文件夹并将其复制到任意位置(无需运行任何安装脚本)。
  3. 运行 日蚀 并选择初始工作台的位置。

安装 Segger Jlink 工具

  1. 下载并运行 J-Link 软件和文件包 (打开新窗口) 操作系统(提供 Windows 和 Linux 软件包)。
    • 在 Linux 上,这些工具安装在 /usr/bin.

更多信息,请参见 https://gnu-mcu-eclipse.github.io/debug/jlink/install/ (打开新窗口).

# 首次使用

  1. 连接 Segger JLink 连接到主机和 飞行控制器调试端口 (通过适配器)。

  2. 为飞行控制器供电。

  3. 运行 日蚀.

  4. 选择 文件 > 导入 > C/C++ > 现有代码作为 Makefile 项目 并点击 下一页.

  5. 将其指向 PX4-自动驾驶仪 文件夹并为其命名,然后选择 ARM Cross GCC索引设置工具链 并点击 完成.导入需要一段时间,请等待完成。

  6. 设置 MCU 设置:右键单击项目浏览器中的顶层项目,选择 属性 然后在 MCU 下选择 SEGGER J-Link Path.设置如下图所示。 日蚀Segger J-Link 路径

  7. 更新包:

    • 点击右上角名为 开放的视角 并打开 透视。 Eclipse:工作区

    • 点击 更新所有 按钮。

      TIP

      这需要很长时间(10 分钟)。不要理会弹出的所有关于缺少软件包的错误。

      Eclipse:工作区包透视

    • STM32Fxx 设备可在 Keil 文件夹中找到,安装时可右击并选择 安装 相应设备上的 F4 和 F7。

  8. 为目标设置调试配置:

    • 右键单击项目,打开 设置 (菜单): C/C++ 生成 > 设置)
    • 选择 设备 Tab、 设备 部分(非 执行局).
    • 找到要调试的 FMU 芯片。

    Eclipse:在设置中选择 FMU

  9. 使用错误符号旁边的小下拉菜单选择调试配置: Eclipse:调试配置

  10. 然后选择 GDB SEGGER J-Link 调试 然后 新配置 按钮。 Eclipse:GDB Segger 调试配置

  11. 设置构建配置

    • 为其命名并设置 C/C++ 应用程序 到相应的 .elf 锉刀
    • 选择 禁用自动构建

      备注

      请记住,在启动调试会话之前,必须从命令行构建目标机。

    Eclipse:GDB Segger 调试配置

  12. 调试器启动 标签页不需要做任何修改(只需根据下面的截图验证设置即可)

    Eclipse:GDB Segger 调试配置:调试器选项卡 Eclipse:GDB Segger 调试配置:启动选项卡

# 故障排除

# 目标 CPU 不在软件包管理器中

如果目标 CPU 未出现在软件包管理器中,您可能需要采取以下步骤才能使寄存器视图正常工作。

TIP

这种情况一般不会发生(但据说在连接 STM F7 控制器时会发生)。

周边视角:

  1. 找出 MCU Eclipse 存储其软件包 (首选项 > C/C++ > MCU 软件包): Eclipse:MCU 软件包
  2. 从以下网址下载缺少的软件包: http://www.keil.com/dd2/Pack/
  3. 使用解压缩工具打开下载的软件包,提取 .SVD 文件来自 /CMSIS/SVD.
  4. 选择所需的 .SVD 归档: 调试选项 > GDB SEGGER JLink 调试 > SVD 路径 Eclipse:SVD 文件路径