使用Clion开发STM32(Dap调试)
使用Clion开发STM32
- 环境配置
- ST-Link无法下载
- OpenOCD
- ST-Link调试
- Dap-Link调试
- Debug配置
- 查看寄存器值
之前写了一篇文章关于如何用VSCode配合EIDE插件开发STM32
最近研究了如何使用Clion开发STM32
环境配置
使用Clion开发STM32需要用到4个工具:Clion、STM32CubeMX、STM32CubeCLT、OpenOCD
以下是下载链接
Clion下载
STM32CubeMX
STM32CubeCLT
OpenOCD
下面是详细的教程,一般来说跟着下面的视频教程来做都能成功,我这里额外补充使用OpenOCD进行烧录和调试,支持 ST-Link 和 Dap-Link
详细教程
ST-Link无法下载
下面是我遇到的问题
在烧录时报了下面的错误,原因可能是没有识别到目标芯片,连接线松了,还有一个原因是ST-Link的版本太低了,需要升级,下面是解决办法
使用STM32CubeIDE自带的ST-Link升级工具对ST-Link进行升级
OpenOCD
上面的视频中使用的是ST-Link进行烧录调试,但是我平时使用更多的是Dap,所以我需要额外下载OpenOCD
下载完成后解压到C盘的Program Files中
将文件的 bin 路径添加到环境变量中
然后复制可执行文件的路径
打开Clion-文件-设置
构建、执行、部署-嵌入式开发
将路径粘贴到OpenOCD位置,点击测试,出现下图绿色文字说明没有问题
找到运行/调试配置,编辑配置
添加 OpenOCD 下载并运行
ST-Link调试
使用ST-Link调试的话跟视频中的一样,调试服务器选择ST-Link就可以了
Dap-Link调试
使用Dap-Link进行调试需要额外添加一个配置文件
在工程目录空白处 右键-新建-文件
命名为 daplink.cfg
然后将下面的内容粘贴进去,保存
# choose st-link/j-link/dap-link etc.
adapter driver cmsis-dap
transport select swd# 0x10000 = 64K Flash Size
set FLASH_SIZE 0x20000source [find target/stm32f4x.cfg]# download speed = 10MHz
adapter speed 10000
接着对OpenOCD调试配置进行编辑
将原来的面板配置文件改为刚刚创建的配置文件
确定
然后将调试服务器改为 原生,这时候点击运行
出现以下信息说明烧录成功
配置过一次后,以后创建工程就方便很多了,下面是具体步骤
打开CubeMX
配置好
复制项目路径
将daplink的配置文件复制到新工程目录下
修改配置
最后选择对应的调试器即可
最后编写完代码运行即可
Debug配置
完成以上步骤可以进行基本的代码编写、烧录,如果要调试的话,还要进行下面的步骤
查看OpenOCD的GDB端口号,我的是3333
target remote 输入 localhost:3333
GDB服务器选择OpenOCD的路径
GDB服务器实参 输入 -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg
如果使用的是ST-Link,则输入-f interface/stlink-v2.cfg -f target/stm32f4x.cfg
最后点确定
点击这个小乌龟进行Debug
下面是效果演示
查看寄存器值
由于Clion不是专门为STM32开发的软件,所以要想查看寄存器的值,还需要下载额外的东西
到STM32官网,搜索STM32F4 SVD,选择STM32F4 System View Description
下载
同样的,将下载好的文件解压放到C盘的Program File中
回到Clion,点击外设,加载.svd文件,需要在调试状态中才能进行加载
选择刚刚下载好的svd文件中的对应芯片信号的.svd文件,路径如下所示,然后点击确定
这时候所有的外设都可以选择
例如我这里选择 GPIOE
这时候就可以查看该寄存器里面每一个值了