【STM32】cmsis-dap调试器-OpenOCD功能集成进CubeIDE中

2023-10-21 16:30

本文主要是介绍【STM32】cmsis-dap调试器-OpenOCD功能集成进CubeIDE中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

被自己买的Jlink真是要整烦了
一下连不上,一下固件掉升级,一下说是D版不给调试
于是乎决定,我买了个CMSIS-DAP调试器,决定放弃JLink这等@#$%^&货…

CMSIS-DAP 调试器

这个是开源调试器,硬件软件开源,T宝可以买,自己也可以去Github上搜索源码和固件和原理图自己做。
当然我很懒,我去买了现成的。。。
好家伙,里面拆开其实就是个国产32的最小系统而已。。。哈哈哈哈
这个网上介绍搜索一堆,这里就不废话了

STM32 CubeIDE

STM32自家 eclipse魔改IDE
GNU的底子,eclipse的外皮
我这里以1.7版为例说明
我不知道后面的版本有没有集成这个OpenOCD功能
如果有,那就省了很多事情了。

OpenOCD

这个是一个开源项目,可以连接ST-Link,Jlink,CMSIS-DAP等等各种你知道的不知道的Link调试器,连接各种Cortex芯片
有OpenOCD或者是Python实现的Pyocd,我这里主要介绍OpenOCD,Pyocd辅助【主要是Pyocd有个地方我这里一直不行,不懂弄】
下载链接

改造 CubeIDE,装Openocd插件

这里在线,离线方法我都说一说

在线的

在这里插入图片描述
Help->Eclipse Marketplace,等他加载完毕
搜索openocd,装Eclipse Embedded 6.3.1
待会装的方法,我这里就不多介绍了,我这里装了,不好卸载再截图了
这里自己搜索下Eclipse在线安装插件的方法哈
在这里插入图片描述
如果网速OK,过一会就会装好,让你重启IDE

离线的

考虑到某些情况,不方便联网装
我这里提供离线下载的链接
把这个ZIP下下来
或者我这里下好了,你来下吧
安装方法网上搜一搜,这里不介绍了,很多人写。

在这里插入图片描述

怎么配置呢

之后点击顶部的绿色虫子旁边的小三角,
在这里插入图片描述
进入后选这个,看看应该多出来了很多东西
在这里插入图片描述
看到这些说明你装成功了
在这里插入图片描述
我们选择OpenOCD Debuging,双击自动新建一个调试配置,这里我们分为调试和烧录
我会将涉及到需要配置的分页单独讲解

调试的配置

在这里插入图片描述
C/C++ Application这里选择你编译出来的elf文件,一般在Debug文件夹下面
在这里插入图片描述

首先Execution Path,这里填写你OpenOCD.exe所在的绝对路径
下面的三个Port,对于单个调试器的情况无需修改,但是对于同时调试多个芯片时,这个需要错开
譬如现在是3333,4444,6666.另一个芯片你就配置一组不一样的就可以。
下面这个Config是最重要的

-c “adapter driver cmsis-dap” -c “adapter serial 12345678” -f “xxxxx\scripts\target\stm32h7x.cfg”

-c "adapter driver cmsis-dap"这个的含义是连接的是CMSIS-DAP
-c "adapter serial 12345678"这个的意思是连接指定序列号,12345678这里我代指序列号,可能是别的哈
如果你只用一个调试器,这段不需要写
如果你不止一个调试器连接在电脑上,这段要写

-f “xxxxx\scripts\target\stm32h7x.cfg” 这个是指定你连接的CPU类型,下载OpenOCD的压缩包里面有这样的cfg文件,找到自己CPU对应的文件,我这里是H743,其他的自行寻找对应的cfg,一般常见的型号都有…

GDB下面的配置
就是需要手动设置下arm-none-eabi-gdb执行文件的位置
这个在CubeIDE安装路径下面,找一找就可以找到

后面的页面保持默认就可以了,不用改
把调试器和芯片板卡相连
我这个调试器是需要接SWCLK SWDIO GND VCC,我没接复位信号
其他情况自行研究
然后不出意外正常进调试应该就可以调试了

如何查询你的调试器序列号

当调试器连接到电脑的时候,会多出一个盘符,打开这个盘符,应该有一个文本文件,里面记录着调试器的基本信息
里面有调试器的序列号。

烧录的配置

烧录的配置和调试的类似
就是Config有点不一样,类似
-c “adapter driver cmsis-dap” -c “adapter serial 12345678” -f “xxxxx\scripts\target\stm32h7x.cfg” -c “program xxxxxxx 你的芯片烧录地址” -c “reset” -c “shutdown”

-c “program xxxxxxx 你的芯片烧录地址”
这里xxxxxxx 是你的编译产物(bin,hex)的绝对地址,注意路径这里需要改成双斜线的写法,他才识别的出来!!!
你的芯片烧录地址 这里填写十六进制的地址,例如H743是0x8000000
-c “reset” 下载完毕后复位芯片
-c “shutdown” 下载完毕之后关闭连接

Enjoy…

这篇关于【STM32】cmsis-dap调试器-OpenOCD功能集成进CubeIDE中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/255595

相关文章

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

Spring Boot 集成 mybatis核心机制

《SpringBoot集成mybatis核心机制》这篇文章给大家介绍SpringBoot集成mybatis核心机制,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值... 目录Spring Boot浅析1.依赖管理(Starter POMs)2.自动配置(AutoConfigu

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

springBoot (springCloud2025)集成redisCluster 集群的操作方法

《springBoot(springCloud2025)集成redisCluster集群的操作方法》文章介绍了如何使用SpringBoot集成RedisCluster集群,并详细说明了pom.xm... 目录pom.XMLapplication.yamlcluster配置类其他配置类连接池配置类Redis

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更