2365|1

2935

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

Vscode+openocd配置的技巧 [复制链接]

如果想使用GNU gcc-arm-none-eabi-gcc来开发项目,遇到的挑战就是如何在烧写和debug代码了,开源的ide常见的有基于eclipse、CLion和vscode,基于前面两种的都是java平台的,无论内存和效率都有点高,但是优点是项目的配置较少,vscode的效率和内存占用少但是项目的配置较复杂。本文是我自己的一点经验总结,配置过程如下:

一、准备工作:

   需要的软件,VSCode-win32-x64-1.84.2.zip ,这个到https://code.visualstudio.com/download下载

   编译器 gcc-arm-none-eabi-10.3-2021.10.zip  https://developer.arm.com/downloads/-/gnu-rm/10-3-2021-10

  下载和调试工具 openocd xpack-openocd-0.12.0-2,

链接已隐藏,如需查看请登录或者注册

   项目工具CMAKE,https://cmake.org/download/

   项目工具ninja,

链接已隐藏,如需查看请登录或者注册

  其它的就是调试器jlink、stlink的驱动了。

二、安装各种软件

 这个很少简单,将所有的软件解压到磁盘的项目下,

 

向我这样,比较省事都统统放在C盘,然后就是设置环境变量,PATH

 

在加入一个变量

 

这个变量是配置openocd vscode时用到地。

完成后加入CMD命令,检验一下

 

如果成功,进行下一步。

三、安装vscode插件,

  上面的插件确保安装成功,

四、构建CMAKE项目,

我使用的是STM32CubeMX构建项目,使用stlink调试项目。

  使用vscode打开项目,

  运行debug编译项目既可以,这是生成debug项目

 

到此时项目就算成功了一半了。

五、配置debug设置

这是最最关键的一步,谁也不是神仙,写代码难免会出错,所以调试就是最关键的了。

如果你向我一样比较急切地去debug,很可能是失败的。

  参考上面地设置,

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug (Remote OpenOCD)",
            "type":"cortex-debug",
            // "cortex-debug.armToolchainPath":"${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin",
            "cwd": "${workspaceRoot}",
            "executable": "${workspaceRoot}/build/debug/lv_stm32f746.elf",
            "request": "launch",
            "servertype": "external",
            // This may need to be arm-none-eabi-gdb depending on your system
            // "gdbPath" : "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",
            // Connect to an already running OpenOCD instance
            "gdbTarget": "localhost:3333",
            "svdFile": "${workspaceRoot}/.vscode/STM32F746.svd",
            "runToMain": false,
            // Work around for stopping at main on restart
            "postRestartCommands": [
                "break main",
                "continue"
            ]
        },
        {
            "cwd": "${workspaceRoot}",
            "executable": "${workspaceRoot}/build/debug/lv_stm32f746.elf",
            "cortex-debug.armToolchainPath":"${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin",
            "device": "STM32F746NGH6",
            "configFiles": [
                "interface/stlink.cfg",
                "target/stm32f7x.cfg"
            ],
            "name": "Debug (Local OpenOCD)",
            "request": "launch",
            "type": "cortex-debug",
            "showDevDebugOutput": false,
            "gdbPath" : "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",
            "svdFile": "${workspaceRoot}/.vscode/STM32F746.svd",
            "servertype": "openocd",
            "runToMain": true,
        }
    ]
}

关键地是: "gdbPath" : "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",和 "cortex-debug.armToolchainPath":"${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin",

这里面的设置指向了调试工具的目录,上面配置的ARM_NONE_EABI_TOOLCHAIN_PATH环境参数

然后就是启动调试了

  看到断点可以调试了。

 

 

 

 

 

此帖出自stm32/stm8论坛

最新回复

谁也不是神仙,写代码难免会出错,所以调试就是最关键的了   详情 回复 发表于 2023-12-8 17:05
点赞 关注
 

回复
举报

56

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

谁也不是神仙,写代码难免会出错,所以调试就是最关键的了

此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表