STM32F407 | Embedded IDE02 - 调试、断点、观察全局变量(支持JLINK、STLINK、DAPLINK)

server/2024/12/26 23:43:59/

导言


在这里插入图片描述
继续使用安富莱的开发板。
在vscode上实现程序的调试、打断点、观察全局变量确实要折腾一番。有一些开发者跳过了这个功能,使用串口打印log来调试程序。但是,我认为打断点,观察全局变量还是很有效的调试手段,不能放弃。所以,决定折腾vscode调试、打断点、观察全局变量。

一、Cortex-Debug插件


在这里插入图片描述
调试,打断点,观察全局变量依赖这个插件。

二、创建launch.json


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照上面的步骤,创建了launch.json文件。

三、安装芯片支持包


在这里插入图片描述
在这里插入图片描述
如上所示,找到STM32F4xx的芯片支持包,下载,安装它。
在这里插入图片描述
在这里插入图片描述

四、修改launch.json


模版如下:

{"configurations": [{"cwd": "${workspaceRoot}","executable": ".\\\\build\\\\rt_thread_vcu\\\\rt_thread_vcu.elf",  // 找到.elf文件的位置"name": "Debug with OpenOCD","request": "launch","type": "cortex-debug",     "servertype": "openocd","configFiles": ["interface/stlink-v2.cfg","target/stm32f4x.cfg"],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none","svdFile": ".\\\\.pack\\\\GigaDevice\\\\GD32F4xx_DFP.2.0.0\\\\SVD\\\\GD32F4xx.svd", // 找到.svd文件的位置// 实时观察全局变量的开关,不需要实时观察全局变量的话,就不需要这段代码"liveWatch": {"enabled": true,"samplesPerSecond": 4}},]
}

4.1、J-LINK版本的launch.json

{"configurations": [{"cwd": "${workspaceRoot}","executable": "./build/F407IGT6-BASE/F407IGT6-BASE.elf",  // 找到.elf文件的位置"name": "Debug","request": "launch","type": "cortex-debug","servertype": "jlink","device": "STM32F407IG", // JLINK必须要指定芯片型号// "configFiles": [//     "interface/stlink-v2.cfg",//     "target/stm32f4x.cfg"// ],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none","svdFile": ".pack/Keil/STM32F4xx_DFP.2.14.0/CMSIS/SVD/STM32F40x.svd", // 找到.svd文件的位置// 实时观察全局变量的开关,不需要实时观察全局变量的话,就不需要这段代码"liveWatch": {"enabled": true,"samplesPerSecond": 4}},]
}

如上所示,使用J-LINK版本的launch.json。

4.1.1、excutable

在这里插入图片描述

4.1.2、svdFile

在这里插入图片描述

4.1.3、其他

在这里插入图片描述

4.1.4、开始调试

在这里插入图片描述

4.2、ST-LINK版本的launch.json

{"configurations": [{"cwd": "${workspaceRoot}","executable": "./build/F407IGT6-BASE/F407IGT6-BASE.elf",  // 找到.elf文件的位置"name": "Debug","request": "launch","type": "cortex-debug","servertype": "openocd",//"device": "STM32F407IG", // JLINK必须要指定芯片型号"configFiles": ["interface/stlink-v2.cfg","target/stm32f4x.cfg"],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none","svdFile": ".pack/Keil/STM32F4xx_DFP.2.14.0/CMSIS/SVD/STM32F40x.svd", // 找到.svd文件的位置// 实时观察全局变量的开关,不需要实时观察全局变量的话,就不需要这段代码"liveWatch": {"enabled": true,"samplesPerSecond": 4}},]
}

在这里插入图片描述

4.2.1、开始调试

在这里插入图片描述

4.3、DAP-LINK版本的launch.json

{"configurations": [{"cwd": "${workspaceRoot}","executable": "./build/F407IGT6-BASE/F407IGT6-BASE.elf",  // 找到.elf文件的位置"name": "Debug","request": "launch","type": "cortex-debug","servertype": "openocd",//"device": "STM32F407IG", // JLINK必须要指定芯片型号"configFiles": ["interface/cmsis-dap.cfg","target/stm32f4x.cfg"],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none","svdFile": ".pack/Keil/STM32F4xx_DFP.2.14.0/CMSIS/SVD/STM32F40x.svd", // 找到.svd文件的位置// 实时观察全局变量的开关,不需要实时观察全局变量的话,就不需要这段代码"liveWatch": {"enabled": true,"samplesPerSecond": 4}},]
}

在这里插入图片描述

4.3.1、开始调试

在这里插入图片描述


http://www.ppmy.cn/server/153456.html

相关文章

本地电脑使用命令行上传文件至远程服务器

将本地文件上传到远程服务器,在本地电脑中cmd使用该命令: scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml 其中,C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径, ~/en…

【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等

【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等 1、OH私仓如何创建? 可以参照以下文档来搭建OH私仓:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-repo-quic…

基于Spring Boot的网络购物商城的设计与实现

目录 摘 要:I Abstract:II 第1章 系统分析1 1.1 系统概述1 1.2 系统可行性分析1 1.2.1 技术可行性分析1 1.2.2 经济可行性分析1 1.2.3 社会可行性分析1 1.3 需求分析2 1.2.1 业务角色分析2 1.2.2 用例分析3 第2章 系统设计4 2.1 功能模块设…

C++ STL vector基本原理和用法

文章目录 基本原理1. 数据存储结构2. 内存管理机制3. 迭代器实现原理4. 元素访问原理5. 插入和删除元素原理 常见用法1. 概述2. 包含头文件3. 定义和初始化4. 常用成员函数5. 迭代器6. 内存管理与性能特点7. 应用场景 基本原理 以下是关于 std::vector 的基本原理讲解&#xf…

全国硕士研究生入学考试(考研)常识详解之复试考试科目:笔试、面试与加试

全国硕士研究生入学考试(考研)常识详解之复试考试科目:笔试、面试与加试 硕士研究生入学考试的复试是对考生进行全面评估的重要环节,旨在考察考生的专业知识、综合素质及科研潜力。复试主要包括笔试与面试两大核心部分&#xff0…

光谱相机的工作原理

光谱相机的工作原理主要基于不同物质对不同波长光的吸收、反射和透射特性存在差异,以下是其具体工作过程: 一、光的收集 目标物体在光源照射下,其表面会对光产生吸收、反射和透射等相互作用。光谱相机的光学系统(如透镜、反射镜…

Linux下的MySQL:表的增删查改

目录 插入 1.全列插入 2.指定列插入 3.多行插入 4.插入否则更新 查询 1.全列查询 2.查询指定列 3.查询表达式 4.对查询的结果去重 5.where条件 结果排序 筛选分页结果 更新 ​删除 删除整表 截断表 插入 创建一张学生表 1.全列插入 、 2.指定列插入 3.多行插…

如何用pS制圣诞C4D效果海报

工具:STARTAI 网址:StartAI画图软件官网_PS插件StartAI绘画软件生成器_Photoshop图像处理插件 咒语:C4D style, isometric perspective, mid view, 2.5D, Open the gift box, inside there is a miniature Christmas scene bedroom, Christ…