使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread

以RTThread为例,使用Vscode和Jlink在线调试STM32

1.所需工具

1).Visual Studio Code(VScode)。
2).arm-none-eabi-gcc编译器。
3).JLink_Windows_V664b.exe。
4).Jlink仿真器。

2.安装Visual Studio Code

VScode下载地址:https://code.visualstudio.com/。下载windows版本,直接双击即可安装,这个没啥好说的。

3.安装arm-none-eabi-gcc编译器(RTThread可以跳过此步,使用env工具自带的编译调试工具)

1).arm-none-eabi-gcc下载地址:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads。选择GNU-RM:使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第1张图片
2).找到下方windows版本的,下载后直接双击安装即可。注意:记住安装的目录,后边会用到!! 使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第2张图片

4.使用RT-Thread的env环境中的scons命令编译RT-Thread,生成rt-thread.elf、rtthread.bin文件。

在env命令行中输入: scons, 编译工程。编译完成后就会生成rt-thread.elf、rtthread.bin。
在这里插入图片描述

5.配置VScode.

1).在VSCode中点击运行->打开配置
使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第3张图片
2).点击后会自动打开launch.json,内容如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/path/to/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

3).修改以下内容:
program改为rt-thread.elf文件的路径:

"program": "${workspaceFolder}/bsp/stm32/stm32f103-atk-warshipv3/rt-thread.elf"

miDebuggerPath改为安装的交叉编译器路径:

"miDebuggerPath": "D:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2020-q4-major\\bin\\arm-none-eabi-gdb.exe"

rtthread可以使用env自带的编译器:

"miDebuggerPath": "D:\\env\\tools\\gnu_gcc\\arm_gcc\\mingw\\bin\\arm-none-eabi-gdb.exe"

miDebuggerServerAddress改为GDB Server的地址,这里选择J-Link GDB Server的地址"localhost:2331":

"miDebuggerServerAddress": "localhost:2331"

修改后如图所示:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "rt-thread-stm32f103",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bsp/stm32/stm32f103-atk-warshipv3/rt-thread.elf",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\env\\tools\\gnu_gcc\\arm_gcc\\mingw\\bin\\arm-none-eabi-gdb.exe",
            "miDebuggerServerAddress": "localhost:2331"
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
        }
    ]
}

6.J-Link GDB Server配置

1).安装J-Link GDB Server。

打开segger官网:https://www.segger.com/downloads/jlink/。找到J-Link Software and Documentation Pack:
使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第4张图片
2).点击Click for downloads, 下载windows版本。
使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第5张图片
3).下载完成,安装后,将Jlink插到电脑上,打开J-Link GDB Server,选择使用的芯片,点击OK:
使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第6张图片
如下图,和板子连接ok,等待gdb连接:
使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第7张图片

7.开始调试代码

将rtthread.bin烧写到开发板后,在VSCode中点击运行,启动调试。就会进入到调试界面,可以打断点,单步跟踪,和IDE调试基本一样。
使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 调试RTThread_第8张图片

你可能感兴趣的:(笔记,经验分享)