【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

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件