| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 3] -> 正文阅读 |
|
[嵌入式]《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 3] |
《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 1] 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 2] 7 OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包。 7.1 OpenOCD安装下载OpenOCD,最新软件版本为0.11.0,这里是使用源码编译安装。 第一步:下载并解压 第二步:配置OpenOCD
配置完成打印信息如下: 可配置的项目可以通过 $ ./configure -h 命令查看帮助信息。 【注】笔者的调试器使用的是ST-Link,所以还要运行如下命令进行使能 $ ./configure --enable-stlink,这里默认开启了,就不需要执行,如果使用其他调试器,则需要根据实际去使能设备。 第三步:编译
第四步:安装
安装完成后可检查OpenOCD版本,看OpenOCD是否安装成功。
打开openocd-0.11.0/tcl,里面有很多提前写好的配置文件: 其中interface目录下都是接口相关配置文件,例如jlink.cfg,stlink.cfg;target目录下都是芯片相关的配置文件,例如stm32f1x.cfg。 7.2 OpenOCD调试配置7.2.1 launch.json文件在vscode文件夹中新建一个launch.json,该文件是调试的入口文件。内容如下:
executable:编译出的二进制文件,也就是最终烧录到单片机中的,这里是elf文件。 request:可以选launch或attach。launch是指启动调试时同时开始执行程序;attcah是指程序已经在运行了,然后开始调试。我没测试过attach。 type:调试的类型,选cortex-debug,这是我们装的插件。其实也可以填cppdbg之类的,但是那样我们就得自己配置gdb了,配置起来将会非常麻烦。 device:目标芯片。如果你使用J-LINK GDB Server时必须要设置这个选项。 svdFile:svd文件的路径,每个MCU的各不相同。 servertype:要选择的gdb server。我这里用openocd。 configFiles:gdb的配置文件路径。openocd会自动读当前目录下的openocd.cfg文件,这个选项不填也行。但是如果你想把openocd.cfg放在别处,就可以用这个选项指定配置文件的路径。 preLaunchTask:在启动调试前,预先执行的任务。 armToolchainPath:工具链的路径。 7.2.2 openocd.cfg文件在项目文件夹下新建一个openocd.cfg文件,用于配置调具体的调试器。内容如下:
我这里选择使用ST-Link,SWD接口,目标芯片为stm32f1x。 【注】使用J-link调试也是一样的,只需将openocd.cfg文件配置成J-link调试即可。 7.2.3 svd文件用于寻找STM32F1的svd文件。CMSIS-SVD是CMSIS的一个组件,它包含完整微控制器系统(包括外设)的程序员视图的系统视图描述 XML 文件。VS Code可以通过它来知道外设寄存器的地址分布,从而把寄存器内容展示到窗口中。 将下载好的STM32F103xx.svd文件放在项目文件夹根目录即可。 7.3 Cortex-Debug调试直接按F5,openocd启动时,会自动在当前目录下寻找名为openocd.cfg的文件作为配置文件。调试界面如下: 界面左边可以看到变量窗口、调用堆栈等。窗口中间就是单步调试的各个按钮。这个就没啥好说的了,赶紧去玩起来吧。 【注】调试STM32报错init mode failed解决方法
解决办法: 7.4 GDB调试除了使用Visual Studio Code自带的调试工具外,还可以使用GDB调试, 首先在终端输入一下命令:
【注】如果不带参数启动,openocd就会自动查找当前目录下有没有名为openocd.cfg的文件,并把它作为配置文件来启动。 【注】openocd默认TCP/IP的3333端口作为gdb端口。 openocd运行时,这个终端就被占用了因此还需要再开一个终端。 GDB也属于GNU项目的一部分,只是这里使用的是交叉编译工具中的GDB。
GDB常用命令如表所示。 关于GDB的使用请看笔者文章: 接下来需要连接openocd服务,openocd给GDB的TCP/IP端口是3333。
接下来和在Linux中普通的应用程序调试一样。 在 gdb 中键入"l"(list)就可以查看所载入的文件,如下所示。 自行参考笔者关于GDB的博文去调试吧。
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:41:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |