问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

VSCode + GDB + J-Link 单片机程序调试实践

创作时间:
作者:
@小白创作中心

VSCode + GDB + J-Link 单片机程序调试实践

引用
CSDN
1.
https://blog.csdn.net/zoomdy/article/details/140069693

本文将详细介绍如何使用VSCode、GDB和J-Link进行单片机程序调试。通过本文,你将学会如何创建调试配置、控制调试过程,以及如何查看和修改各种变量。

安装调试插件

在开始调试之前,首先需要在VSCode中安装Cortex-Debug插件。打开VSCode的扩展窗口,搜索并安装Cortex-Debug插件。

创建调试配置

安装完插件后,接下来需要创建调试配置文件。在Run and Debug窗口点击"create a launch.json file"按钮,然后在弹出窗口中选择Cortex Debug。这将创建一个默认的配置文件。

修改默认配置

在创建的launch.json文件中,需要对以下字段进行修改:

  • executable:填入待调试的程序文件名,注意必须是elf格式,而不是hex或bin格式。
  • device:填入MCU型号。
  • name:可选,填入易理解的名称,用于区分不同的调试配置。
  • svdPath:可选,如果需要查看外设寄存器,可以添加此字段。

启动调试

完成配置后,在Run and Debug窗口将显示调试配置名称。点击绿色三角形的"Start Debugging"按钮启动调试。

调试工具栏

启动调试后,窗口上方将显示调试工具栏,包含以下功能:

  • Reset device:复位MCU,重新从main开始执行。
  • Continue:连续执行,点击后会变成Pause按钮,用于暂停CPU执行。
  • Step Over:单步执行,碰到函数时将函数作为一个步骤执行。
  • Step Into:单步执行,碰到函数时进入函数内部。
  • Step Out:执行完当前函数剩余语句并返回调用处后暂停。
  • Restart:重新开始调试,与Reset device按钮功能相同,但使用Reset device更推荐。
  • Stop:结束调试。

添加断点

  • 在源代码窗口行号左侧点击可以添加断点。
  • 在BREAKPOINTS窗口点击加号图标可以添加函数断点。

查看调用栈

在CALL STACK窗口可以查看当前调用栈,下方函数调用上方函数。

查看局部变量和CPU寄存器

  • 在VARIABLES窗口的Local分类下可以查看函数局部变量。
  • 在VARIABLES窗口的Registers分类下可以查看CPU寄存器。
  • VARIABLES窗口还可以查看全部全局变量和当前源文件的静态变量,但变量太多时不利于查看,建议将全局变量添加到WATCH窗口。

查看全局变量

  • 选中全局变量,右键选择"Add to Watch",将全局变量添加到WATCH窗口。
  • 也可以在WATCH窗口点击加号按钮添加全局变量。

查看外设寄存器

在XPERIPHERALS窗口可以查看外设寄存器。如果未在调试配置中指定svdPath,那么外设寄存器窗口将不可见。

查看反汇编

在CPU被halt的状态下,在源代码窗口点击右键选择"Open Disassembly View"可以打开反汇编窗口。可以拖动反汇编窗口,使其与源代码窗口并排,以便对照。单步执行时,若焦点在源代码窗口,那么执行语句单步,若焦点在反汇编窗口,那么执行指令单步。

在线监视变量

如果在调试配置中设置了liveWatch字段,将支持Live Watch,即在线监视变量。添加到CORTEX LIVEWATCH窗口中的变量在CPU执行期间将定时读取其数值,并在窗口内显示。这种方式可以在不暂停CPU执行的情况下定时更新变量值。

查看操作系统任务列表

Cortex-Debug插件包含XRTOS窗口,可以自动检测程序是否使用了操作系统,并可以查看所支持的操作系统任务列表。例如,XRTOS可以检测到当前程序使用了uC/OS-II,并列出所有任务,包括任务优先级、任务名称、堆栈使用情况等信息。

添加Watchpoint

VSCode图形界面未找到添加Watchpoint的入口。可以通过调试器命令行窗口输入调试命令的方式添加Watchpoint。在DEBUG CONSOLE窗口输入watch OSRunning可以添加Watchpoint监视OSRunning被修改的位置。输入info break可以查看添加的Watchpoint。

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号