Linux下使用vscode在线调试STM32开发板


前言

现在越来越多人开始喜欢在Linux环境下开发IOT或MCU程序。本人也弄了一块STM32F769I-DISCO开发板来学习,并尝试将开发板程序移植到OpenHarmony。移植期间碰到不少问题,除了编译问题外还有不少死机问题,因此必须利用在线调试工具来分析和解决这些死机问题。自己上网查阅了不少在线调试的文章,但不知道什么原因,一直都不行。最后采用了vscode+Cortex-Debug+st-util工具才实现。


一、安装vscode Cortex-Debug扩展

在vscode的扩展窗口,找到Cortex-Debug扩展组件,并安装
在这里插入图片描述

二、下载和安装STLink开发工具,这是Cortex-Debug需要的配套工具

STLink工具下载地址如下:

https://github.com/stlink-org/stlink/releases

ubuntu版本:

https://github.com/stlink-org/stlink/releases/download/v1.7.0/stlink_1.7.0-1_amd64.deb

完成安装后,确定是否存在st-util和st-flash程序。

# st-util --version
v1.7.0

# st-flash --version
v1.7.0

三、配置Cortex-Debug

在菜单中选择:运行–>添加配置,会打开launch.json的配置文件并显示配置菜单。这个配置下拉菜单可以看到有很多可选项目,找到并选择”Cortex Debug: ST-Util”(配合下载的stlink-tool工具使用)
在这里插入图片描述
然后参考下面样例,完成配置。(配置文件位置:<项目根目录>/.vscode/launch.json):

{
    "version": "0.2.0",
    "configurations": [
        {
            "cwd": "${workspaceRoot}",
            "executable": "./out/stm32f769i-disco/stm32f769i-disco/OHOS_Image",
            "name": "Debug STUTIL",
            "request": "launch",
            "type": "cortex-debug",
            "runToEntryPoint": "main",
            "showDevDebugOutput": "none",
            "servertype": "stutil"
        },
    ]
}

cwd:${workspaceRoot},代码根目录
executable:…/OHOS_Image,配置执行文件的路径和名称
type: cortex-debug,指定调试器
servertype:stutil,指定调试器的类型
runToEntryPoint: “main”,运行到main函数后中断执行

四、编译程序

我的ST32F769I-DISCO开发板适配了鸿蒙OS,直接在Shell终端运行鸿蒙的编译指令来编译代码:

hb build -f

另外也可以配置一个build任务,选择菜单:终端—>运行生成任务…或按Ctrl+Shift+B直接进行编译。配置文件在:<项目根目录>/.vscode/tasks.json

        {
            "label": "mybuild",
            "type": "shell",
            "command": "hb build -f",
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
        },

五、下载程序

使用stlink-tool附带的工具将编译的程序下载到开发板中(STM32F769I-DISCO的Flash地址是0x0800000):

st-flash  write OHOS_Image.bin 0x08000000

同样也可以配置一个下载程序的任务,只要运行该任务即可将程序下载到目标板(菜单终端—>运行任务…,选择myupload执行该任务)。配置文件在:<项目根目录>/.vscode/tasks.json

        {
            "label": "myupload",
            "type": "shell",
            "command": "st-flash",
            "args": [
                "write",
                "${workspaceRoot}/out/stm32f769i-disco/stm32f769i-disco/OHOS_Image.bin",
                "0x08000000",
            ],
            "problemMatcher": [],
        },

六、在线调试

连接开发板,将编译的程序下载到目标板后,按F5或在下面的界面中点击绿色三角形开始进行调试:
在这里插入图片描述
出现下面的调试界面(下图右上角有一排在线调试按钮),即表明在线调试正在进行中:
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值