0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

vscode全系列调试

冬至子 来源:zhkag 作者:zhkag 2023-10-17 11:39 次阅读

这里介绍了 RTT 常见的几个 bsp 的调试方法,其他的都是类似的形式,照着写即可

前置条件

软件环境
vscode
vscode Cortex Debug 插件

选择性下载的软件
gdb-multiarch
gcc-arm-none-eabi
pyocd
openocd

launch.json 配置文件

这里先贴一下配置文件,给那些只需要配置文件的小伙伴准备的

{
"version": "0.2.0",
"configurations": [
{
"name": "qemu-vexpress-a9",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/bsp/qemu-vexpress-a9/rtthread.elf",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceRoot}/bsp/qemu-vexpress-a9",
"environment": [],
"externalConsole": true,
"miDebuggerServerAddress": "localhost:1234",
"serverLaunchTimeout": 2000,
"targetArchitecture": "ARM",
"MIMode": "gdb",
"miDebuggerPath": "gdb-multiarch",
"setupCommands": [
{
"text": "set backtrace limit 16"
}
],
"customLaunchSetupCommands": [],
"launchCompleteCommand": "exec-run",
},
{
"name": "qemu-virt64-riscv",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/bsp/qemu-virt64-riscv/rtthread.elf",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceRoot}/bsp/qemu-virt64-riscv",
"environment": [],
"externalConsole": true,
"miDebuggerServerAddress": "localhost:1234",
"serverLaunchTimeout": 2000,
"targetArchitecture": "ARM",
"MIMode": "gdb",
"miDebuggerPath": "gdb-multiarch",
"setupCommands": [
{
"text": "set backtrace limit 16"
}
],
"customLaunchSetupCommands": [],
"launchCompleteCommand": "exec-run",
},
{
"name": "qemu-virt64-aarch64",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/bsp/qemu-virt64-aarch64/rtthread.elf",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceRoot}/bsp/qemu-virt64-aarch64",
"environment": [],
"externalConsole": true,
"miDebuggerServerAddress": "localhost:1234",
"serverLaunchTimeout": 2000,
"targetArchitecture": "ARM",
"MIMode": "gdb",
"miDebuggerPath": "gdb-multiarch",
"setupCommands": [
{
"text": "set backtrace limit 16"
}
],
"customLaunchSetupCommands": [],
"launchCompleteCommand": "exec-run",
},
{
"name": "rt-spark-pyocd",
"cwd": "/opt/rt-thread/tools/pyocd/bin/",
"executable": "${workspaceRoot}/bsp/stm32/stm32f407-rt-spark/rt-thread.elf",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"targetId": "STM32F407ZG",
"servertype": "pyocd",
"serverpath": "/opt/rt-thread/tools/pyocd/bin/pyocd",
"armToolchainPath": "/opt/rt-thread/tools/gnu_gcc/gcc-arm-none-eabi/bin/",
"gdbPath": "/opt/rt-thread/tools/gnu_gcc/gcc-arm-none-eabi/bin/arm-none-eabi-gdb",
},
{
"name": "rt-spark-openocd",
"executable": "${workspaceRoot}/bsp/stm32/stm32f407-rt-spark/rt-thread.elf",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"targetId": "STM32F407ZG",
"servertype": "openocd",
"configFiles": [
"interface/stlink-v2.cfg",
"target/stm32f4x.cfg"
],
"armToolchainPath": "/opt/rt-thread/tools/gnu_gcc/gcc-arm-none-eabi/bin/",
"gdbPath": "/opt/rt-thread/tools/gnu_gcc/gcc-arm-none-eabi/bin/arm-none-eabi-gdb",
},
{
"name": "hmi-board-pyocd",
"cwd": "/opt/pyocd/bin/",
"executable": "${workspaceRoot}/bsp/renesas/ra6m3-hmi-board/rtthread.elf",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"targetId": "R7FA6M3AH",
"servertype": "pyocd",
"serverpath": "/opt/pyocd/bin/pyocd",
"armToolchainPath": "/opt/rt-thread/tools/gnu_gcc/gcc-arm-none-eabi/bin/",
"gdbPath": "/opt/rt-thread/tools/gnu_gcc/gcc-arm-none-eabi/bin/arm-none-eabi-gdb",
}
]
}

launch.json 配置文件注意事项

这里是以 rt-thread 源码为路径的,如果不对应的话请修改 launch.json 文件中的 executable 值 ,其中 ${workspaceRoot} 表示的是 vscode 工程的路径

除了 qemu 相关外,其他的 name 值都是使用的开发版名称加调试类型(这里没特殊要求,个人习惯而已,方便调试开发板时选择特定的工程及调试工具)

调试 qemu 时记得安装 gdb-multiarch 工具(archlinux 推荐使用 aur 工具输入 yay -S gdb-multiarch),如果安装了之后还有以下错误,miDebuggerPath 值请使用全路径

1.jpg

使用 openocd 调试时请安装 openocd 工具(archlinux 推荐使用 aur 工具输入 yay -S openocd)

使用 pyocd 调试时请安装 pyocd 工具(archlinux 推荐使用 aur 工具输入 yay -S rt-pyocd-git)(目前无法一条命令配置成功,并且有自己更改的部分,非 archlinux 用户不建议使用,硬要使用也可以下面有具体教程

使用 gcc-arm-none-eabi 调试时请安装 gcc-arm-none-eabi 工具(archlinux 推荐使用 aur 工具输入 yay -S rt-gcc-arm-none-eabi)非 archlinux 用户请修改 armToolchainPath 和 gdbPath 到 gcc-arm-none-eabi 对应路径,archlinux 用户不用修改路径即可正常使用

pyocd 安装

Windows

安装之后请修改 launch.json 中的 cwd 和 serverpath 值

linux
git clone https://github.com/RT-Thread-Studio/sdk-debugger-pyocd.git
python -m venv /opt/pyocd
/opt/pyocd/bin/pip install pyocd
cp -r sdk-debugger-pyocd/packs /opt/pyocd/bin
rm -rf sdk-debugger-pyocd
cd /opt/pyocd/bin/packs && python ./update_yaml.py
cd -
其中 launch.json 中的 cwd 值表示当前的运行路径,把这个设置到 /opt/pyocd/bin 是为了让 pyocd 找到 pack 包

调试

先在这里选择您所需要的调试

1.jpg

实体硬件需要连接开发板,qemu 需要运行 bsp 路径下的 qemu debug/dbg
按下 F5 即可开始调试

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gcc编译器
    +关注

    关注

    0

    文章

    78

    浏览量

    3345
  • RTThread
    +关注

    关注

    7

    文章

    132

    浏览量

    40773
  • gdb调试器
    +关注

    关注

    0

    文章

    10

    浏览量

    1096
  • vscode
    +关注

    关注

    1

    文章

    154

    浏览量

    7644
收藏 人收藏

    评论

    相关推荐

    首创ubuntu下cw32l031的vscode+gcc工程创建、下载、调试

    首创在ubuntu下面用vscode实现cw32l031的gcc工程创建、编译、下载与调试
    的头像 发表于 06-25 21:49 2.4w次阅读
    首创ubuntu下cw32l031的<b class='flag-5'>vscode</b>+gcc工程创建、下载、<b class='flag-5'>调试</b>

    stm32cubeMX+vscode开发编译调试

    stm32cubeMX+vscode开发编译调试stm32程序安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译代码配置vscode
    发表于 08-05 06:20

    VSCode开发AT32单片机

    AT32 MCU Develop with VSCode描述了使用VSCode开发、编译、下载、调试AT32 MCU的解决方法,支持AT32F全系列芯片。
    发表于 10-26 06:52

    星春牌CCD系列调温式不锈钢电炒锅电路图

    星春牌CCD系列调温式不锈钢电炒锅电路图
    发表于 11-17 14:43 1192次阅读
    星春牌CCD<b class='flag-5'>系列调</b>温式不锈钢电炒锅电路图

    使用 VSCode 远程 图形化 GDB 调试 嵌入式linux

    目录标题引言环境步骤vscode remote ssh 配置Linux编译机配置设备板端配置vscode launch设置调试引言之前说了,通过core dump找程序bug,但是有些时候排查
    发表于 11-01 17:06 1次下载
    使用 <b class='flag-5'>VSCode</b> 远程 图形化 GDB <b class='flag-5'>调试</b> 嵌入式linux

    配置VScode编译、调试STM32(二)Cortex-Debug插件

    配置VScode编译、调试STM32(二)Cortex-Debug插件
    发表于 12-01 12:21 17次下载
    配置<b class='flag-5'>VScode</b>编译、<b class='flag-5'>调试</b>STM32(二)Cortex-Debug插件

    stm32cubeMX+vscode开发编译调试stm32程序

    stm32cubeMX+vscode开发编译调试stm32程序安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译代码配置vscode
    发表于 12-24 19:31 6次下载
    stm32cubeMX+<b class='flag-5'>vscode</b>开发编译<b class='flag-5'>调试</b>stm32程序

    STM32全系列调试接口汇总

    有时会有人问起STM32所支持的调试接口有哪些,本文做了一个汇总表。该表按照内核所属对各STM32系列分别做了介绍,里面还包括了各系列芯片所支持的硬件断点数、MCO输出脚【时钟输出脚个数】等
    发表于 02-08 15:37 3次下载
    STM32<b class='flag-5'>全系列调试</b>接口汇总

    基恩士CV-X调试手册

    基恩士CV-X系列调试手册
    发表于 06-22 16:07 0次下载

    VSCode中使用QEMU调试FreeRTOS

    在这篇文章中,我们将逐步完成一个示例设置,该设置以模拟 Arm Cortex-M3 微控制器为例,展示了如何使用 QEMU 在 Visual Studio Code (VSCode) 编辑器中调试 FreeRTOS 应用程序。此示例不需要实际硬件,需要笔记本电脑或台式机作
    的头像 发表于 03-06 09:24 1910次阅读

    SH7125系列调试MCU板HS7125EDB01H、HS7125EDB02H、HS7124EDB01H用户手册

    SH7125系列调试MCU板HS7125EDB01H、HS7125EDB02H、HS7124EDB01H用户手册
    发表于 04-28 20:03 0次下载
    SH7125<b class='flag-5'>系列调试</b>MCU板HS7125EDB01H、HS7125EDB02H、HS7124EDB01H用户手册

    VSCode使用-搭建python运行调试环境

    VSCode是一个优秀的编辑工具,适合代码阅读,代码编辑,甚至配置好之后,可以编译与调试代码。
    的头像 发表于 05-04 10:00 892次阅读
    <b class='flag-5'>VSCode</b>使用-搭建python运行<b class='flag-5'>调试</b>环境

    SH7125系列调试MCU板 HS7125EDB01H HS7125EDB02H HS7124EDB01H 用户手册

    SH7125系列调试MCU板 HS7125EDB01H HS7125EDB02H HS7124EDB01H 用户手册
    发表于 05-06 18:39 0次下载
    SH7125<b class='flag-5'>系列调试</b>MCU板 HS7125EDB01H HS7125EDB02H HS7124EDB01H 用户手册

    SH7125系列调试MCU板 HS7125EDB01H HS7125EDB02H HS7124EDB01H 用户手册

    SH7125系列调试MCU板 HS7125EDB01H HS7125EDB02H HS7124EDB01H 用户手册
    发表于 06-26 20:25 0次下载
    SH7125<b class='flag-5'>系列调试</b>MCU板 HS7125EDB01H HS7125EDB02H HS7124EDB01H 用户手册

    使用VSCode调试嵌入式程序:如何切换gdb server

    上文小编给大家介绍了一下如何使用VSCode结合cortex-debug插件进行调试的方法。本篇就趁热打铁,进一步深入了解一下如何切换gdb server。让我们可以不仅仅使用JLinkGDBServer进行调试
    的头像 发表于 05-09 11:02 1715次阅读
    使用<b class='flag-5'>VSCode</b><b class='flag-5'>调试</b>嵌入式程序:如何切换gdb server