| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 通过External Tools在STM32CubeIDE下使用DAP-LINK -> 正文阅读 |
|
[Java知识库]通过External Tools在STM32CubeIDE下使用DAP-LINK |
目录一、文章背景? ? ? ?STM32开发者众多,有相当一部分人从Keil转移到了CubeIDE平台开发。开发过程中,基于各种原因,难免会需要使用DAP-LINK调试和仿真,笔者自己踩过坑,此前写了一篇博客专门介绍如何利用OpenOcd绕过CubeIDE只能用ST-LINK的限制,使用DAP-LINK调试STM32,感兴趣的可以移步:在Stm32CubeIDE环境下使用DAP-Link仿真。 ? ? ? 该文章的方法至今依然有效,但使用方法太过繁琐,需要单独下载OpenOcd、写脚本、调试前需要运行脚本。后来笔者使用Stm32CubeIDE开发过程中有了几个意外发现:
下面给出完整的使用方法。 二、准备工作2.1 Stm32CubeIDE? ? ? ? 官方可以免费下载安装,安装过程不在本篇文章讨论范围内,在此略过。有需要的可去官方下载:Stm32CubeIDE下载链接,截至本文撰写时,最新版为1.7。 2.2 DAP-LINK? ? ? ? 这个仿真器硬件有很多,因其开源特性广受欢迎。本人购买的是淘宝MUSE LAB出品,体积只有手指大小,非常精致,购买链接在此。 2.3?STM32目标板? ? ? ?调试目标板当然必不可少,本文的方法适用于所有STM32的MCU,笔者以一块STM32F072开发板为例进行演示。 三、配置过程3.1 连接目标板????????????????CLK、GND、DIO...几根线依次接好。 3.2 配置仿真器? ? ?CubeIDE菜单栏->RUN->Debug Configrations->STM32 Cortex-m C/C++ Application->New Configration。正常情况下,如果是用的ST-LINK就可以直接仿真调试了,如果使用DAP-LINK,会出现“No ST-LINK detected! Please connect ST-LINK and restart the debug session”这样的报错。 但是没关系,本文的目的就是解决这个报错。 3.3 更改调试设置为远程调试? ? ? ?GDB连接设置改为远程GDB服务器-->端口保持默认-->调试探头改为OpenOCD-->取消勾选实时表达式。 3.4 新建OpenOcd扩展工具OpenOcd? ? ? ?依次进入CubeIDE菜单栏->RUN->External Tools-> External Tools Configrations->Program(右键)->NEW Configration. 3.5 通过变量选择CubeIDE的OpenOcd路径? ? ? ? ?CubeIDE自带了很多环境变量,方便用户使用,其中有很多是IDE的各种插件的安装路径,OpenOcd的路径也在其中,可以点击“Variables“获取,在其后加上\openocd.exe使用。 ??在其中找到OpenOcd的路径,并勾选。 3.6?选择OpenOcd配置脚本的路径? ? ? ? ?OpenOcd作为调试服务器与目标板中间的交互接口,想要使用它调试,必须让OpenOcd知道调试使用的调试器类型,以调试的目标处理器类型,这两个参数,都以一系列脚本的形式,放在了OpenOcd的interface目录和Target目录。这一步骤就是选择这两个目录的根路径。 3.7?输入调试配置文件参数? ? ? ? 最后,在参数栏输入调试器和目标处理器的配置文件即可,由于本文使用的是DAP-LINK,目标处理器为STM32F072,因此: DAP-LINK加STM32F0,配置参数为: -f? .\interface\cmsis-dap.cfg? -f? .\target\stm32f0x.cfg DAP-LINK加STM32F1,配置参数为: -f? .\interface\cmsis-dap.cfg? -f? .\target\stm32f1x.cfg DAP-LINK加STM32F4,配置参数为: -f? .\interface\cmsis-dap.cfg? -f? .\target\stm32f4x.cfg 3.8?扩展说明? ? ? ? ?对OpenOcd感兴趣的读者可以百度了解更多,实际上,笔者的教程。只是取巧从CubeIDE的安装目录中调用了一部分OpenOcd的配置。如果如笔者上一篇教程一样获取完整的OpenOcd,可以从OpenOcd目录中看到,OpenOcd其实支持很多调试器和目标处理器的,而不仅仅局限于DAP-LINK和STM32。ST官方只是摘取了STM32能用的那部分集成进了CudeIDE供自家处理器使用。 ??? ? ? ?至此,外部工具配置OK,下一步,正式开始调试。 四、自定义调试步骤????? 自定义调试步骤这一步,其实就是先通过External Tools打开OpenOcd调试服务,再使用IDE的GDB调试服务去实现下载和调试,想深入了解调试过程的读者可以参考笔者另一篇文章:深入理解工具链-自己搭建STM32编程IDE。 4.1 新建调试任务? ? ? ? ? CubeIDE菜单栏->RUN->Debug Configrations->Launch Group->New Configration。 4.2?添加第一个任务:运行OpenOcd4.3 添加第二个任务:运行Debug4.4 最终效果五、调试? ? ? ?至此,CubeIDE完美支持DAP-LINK。工程编译完,点击界面的小虫子图标,执行咱们自定义的调试任务就可以了。 ? ? ? ?Eclipse的外部工具不仅可以用于调用OpenOcd,实际上,它还可以调用任何可执行的外部命令,例如python脚本,如果你愿意,甚至可以利用它自动打开Vscode,查看工程当前的map文件、反汇编文件等,用好了,妙用无穷。 本文是作者闲时业余记录,如由遗漏错误,请见谅,感谢观看文章,转载不用注明出处。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/23 13:11:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |