Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
vscode
原创征文
调试
vscode 全系列调试
发布于 2023-10-16 11:50:22 浏览:1490
订阅该版
[tocm] ## 这里介绍了 RTT 常见的几个 bsp 的调试方法,其他的都是类似的形式,照着写即可 ## 前置条件 - 软件环境 - vscode - vscode Cortex Debug 插件 - 选择性下载的软件 - gdb-multiarch - gcc-arm-none-eabi - pyocd - openocd ## launch.json 配置文件 这里先贴一下配置文件,给那些只需要配置文件的小伙伴准备的 ```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 配置文件注意事项 1. 这里是以 rt-thread 源码为路径的,如果不对应的话请修改 launch.json 文件中的 `executable` 值 ,其中 `${workspaceRoot}` 表示的是 vscode 工程的路径 2. 除了 qemu 相关外,其他的 `name` 值都是使用的开发版名称加调试类型(这里没特殊要求,个人习惯而已,方便调试开发板时选择特定的工程及调试工具) 3. 调试 qemu 时记得安装 `gdb-multiarch` 工具(archlinux 推荐使用 aur 工具输入 `yay -S gdb-multiarch`),如果安装了之后还有以下错误,`miDebuggerPath` 值请使用全路径 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20231016/c0ac9b815115022c2eec41e7a804befb.png.webp) 4. 使用 openocd 调试时请安装 openocd 工具(archlinux 推荐使用 aur 工具输入 `yay -S openocd`) 4. 使用 pyocd 调试时请安装 pyocd 工具(archlinux 推荐使用 aur 工具输入 `yay -S rt-pyocd-git`)(目前无法一条命令配置成功,并且有自己更改的部分,非 archlinux 用户不建议使用,**硬要使用也可以下面有具体教程**) 4. 使用 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 安装 pyocd 仓库 https://github.com/RT-Thread-Studio/sdk-debugger-pyocd.git 国内 gitee 镜像仓库 https://gitee.com/RT-Thread-Studio-Mirror/sdk-debugger-pyocd.git ### Windows ```shell git clone https://github.com/RT-Thread-Studio/sdk-debugger-pyocd.git ``` 安装之后请修改 launch.json 中的 `cwd` 和 `serverpath` 值 ### linux ```shell 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. 先在这里选择您所需要的调试 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20231016/9248f650afc21475f256994466e61210.png) 2. 实体硬件需要连接开发板,qemu 需要运行 bsp 路径下的 qemu debug/dbg 3. 按下 F5 即可开始调试
8
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
zhkag
这家伙很懒,什么也没写!
文章
12
回答
482
被采纳
66
关注TA
发私信
相关文章
1
程序下载之后无法正常运行
2
studio调试的时候直接跳到系统OTP出不来!下载运行正常!
3
STLINK调试无法进入
4
裸机添加nano后,为什么调试模式,多次点击全速才可以运行?
5
想使用keil5软件进行调试有什么好的视频或者网站能学习吗
6
单步调试出现问题参数显示错误
7
QEMU调试界面返回
8
Env仿真器硬件调试
9
st-link调试成功但找不到main
10
RT stduio无法进入调试
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部