Cortex-debug 插件配置
Cortex-debug 使用 gdb
来完成调试;下图介绍了 gdb 调试的组成和它们之间的关系,在开始之前有必要理解清楚它们的关系

有了上图的解释,再来弄明白 Cortex-debug 的配置可能会更加容易,Cortex-debug 扩展配置只需两步
1. 首先,我们要配置 gdb 所在目录的路径,这是必须的,因为它是核心的调试程序, ARM-GNU-Toolchain 下载

下面是示范,每个人的安装位置可能有所不同:

2. 根据你所拥有的 硬件调试器
,选择一个支持它的 gdb server 程序
注意:下面框出的路径不是每个都需要填,而是根据你的 硬件调试器 类型做一个选择
较常用的是 JLink GDBServer 和 OpenOCD,前者只支持 JLink 调试器,后者支持 jlink,stlink,cmsis-dap,等众多调试器
JLink GDBServer 位置于官方的 JLink 驱动程序中,OpenOCD 需要自行去下载

下面是一个示范,每个人的安装位置可能有所不同:
注:下图配置了 JLinkGDBServer 和 OpenOCD,因为本文章要使用 两种不同的调试器 进行示范,分别是 Jlink-OB 和 STLink,实际只需选择配置一个

cortex-debug 的 launch.json 配置和介绍
通用的配置属性
这些被标记出的属性是最基本的配置,和使用什么样的硬件无关

属性解释:
type
:【必填】调试器类型,值必须为:cortex-debug
request
:【必填】启动类型,常用值:launch
servertype
:【必填】gdb server 类型,值根据你要用的 gdb server 进行一个选择
executable
:【必填】含有调试信息的可执行文件的路径,可以是 keil 生成的 .axf 文件 或者 ARM-GNU-toolchain 生成的 .elf 文件
svdFile
:【可选】用于描述芯片外设的 .svd 文件路径,如果此选项有效,那么可以在调试时查看外设寄存器的值
特定于 GDB Server 的配置属性
对于不同的 gdb server 类型,还需要填写不同的配置属性,下面对 JLink 和 OpenOCD 的配置进行一个介绍
JLink 配置
基本配置如下:

属性解释:
interface
:JLink 的连接类型,如:swd,jtag
device
:芯片的系列名称,如 STM32F103C8,可以打开 JLinkGDBServer.exe 查看有效的名称列表

OpenOCD 配置
基本配置如下:

属性解释:
configFiles
:OpenOCD 的配置文件,由于 OpenOCD 支持众多接口,因此它采用选择不同的配置文件来选择不同的调试器接口和不同的芯片,主要的配置文件类型有两个,一个是 interface, 一个是 target
OpenOCD 配置文件在安装目录的 scripts 目录下
其中:
- interface 目录里包含了所有受支持的 硬件调试器 对应的配置文件
- target 目录包含了所有受支持的 芯片系列 对应的配置文件
下图展示了配置的对应关系
只需在对应的目录下找到需要的配置文件,并填写其相对路径到列表中即可完成配置

本例中展示的是 OpenOCD 使用 STLink 调试 STM32F103 的配置,其他类型的配置与此类似,只需要修改 configFiles 即可
PyOCD
基本配置如下:

属性解释:
如果你安装了 CMSIS 包,并选择了芯片类型,你可以在视图中看到此名称

效果展示
在完成配置之后,选择好要启动的配置,连接好 硬件调试器 和 板子,就可以启动调试
注:出现无法启动的问题请仔细阅读 Cortex-debug 给出的提示 或者 调试面板的输出

实时变量查看
这个实时数据查看功能,cortex-debug 现在是支持的,功能名称:liveWatch
需要修改 launch.json 使能.
"liveWatch": {
"enabled": true,
"samplesPerSecond": 4
}
