关于STM32调试器CMSIS_DAP的使用及注意事项

说明
最近在淘宝上买了一个STM32F4x1系列的最小系统板

提供CMSIS-DAP固件(进群领取固件),秒变CMSIS-DAP调试器

技术交流QQ群: 970663546

售后QQ群:1055686596 凭订单号进入


1、关于KEIL设置

如遇到RDDI-DAP Error,可能的原因及解决办法:

线太长,因为DAP速度较快线太长干扰较大(JTAG最快10M,SWD模式1M最稳定)
与开发板的通讯时序出错(检查KEIL配置、连线、供电等,建议目标板单独供电)
2、可能遇到的其他问题

下载完成后把DAP拔下来,如果不断开DAP与开发板的连接,会导致程序无法运行;因为DAP在没有介入PC时,通过与目标板的连接会把 RST 引脚拉低,导致 MCU 一直处于复位状态。(不适用我做的这个,因为我没用RST引脚)
下载程序后不运行原因1: DAP 与开发板的连接没有接 RST 引脚时下载程序后 MCU 不会复位运行(DAP 采用的是硬件复
位,即通过 RST 引脚连接进行复位,连接后还需要 MDK使能 Reset and Run)
下载程序后不运行原因2: 在KEIL中没有选择SYSRESETREQ下载程序后不会运行,SYSRESETREQ这个选项是软件复位启动,下载后程序不运行是因为SYSRESETREQ功能在使用CMSIS-DAP时没起作用,没有发出相应的软启动的命令

或者如下图设置:

第3章     如何用DAP仿真器下载程序

全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn

野火视频教程优酷观看网址:http://i.youku.com/firege

3.1 仿真器简介

本书配套的仿真器为Fire-Debugger,遵循ARM公司的CMSIS-DAP标准,支持所有基于Cortex内核的单片机,常见的M3、M4和M7都可以完美支持,其外观见图 31。

Fire-Debugger支持下载和在线仿真程序,支持XP/WIN7/WIN8/WIN10这四个操作系统,免驱,不需要安装驱动即可使用,支持KEIL和IAR直接下载,非常方便。

图 31 DAP下载器外观

3.2 硬件连接

把仿真器用USB线连接电脑,如果仿真器的灯亮则表示正常,可以使用。然后把仿真器的另外一端连接到开发板,给开发板上电,然后就可以通过软件KEIL或者IAR给开发板下载程序。

图 32 仿真器与电脑和开发板连接方式

3.3 仿真器配置

在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号,具体过程看图示:

1.    Debug选项配置

图 33 Debug选择CMSIS-DAP Debugger

2.    Utilities选项配置

图 34 Utilities选择 Use Debug Driver

3.    Debug Settings 选项配置

图 35 Debug Settings 选项配置

3.4 选择目标板

选择目标板,具体选择多大的FLASH要根据板子上的芯片型号决定。秉火STM32开发板的配置是:F1选512K,F4选1M。这里面有个小技巧就是把Reset and Run也勾选上,这样程序下载完之后就会自动运行,否则需要手动复位。擦除的FLASH大小选择Sectors即可,不要选择Full Chip,不然下载会比较慢。

图 36 选择目标板

3.5 下载程序

如果前面步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。下载程序不需要其他额外的软件,直接点击KEIL中的LOAD按钮即可。

图 37 下载程序

程序下载后,Build Output选项卡如果打印出 Application running…则表示程序下载成功。如果没有出现实验现象,按复位键试试。

图 38 程序运行成功

开源共享,共同进步。

版权声明:本文为CSDN博主「位文杰TOP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36958104/article/details/119675878

生成海报
点赞 0

位文杰TOP

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32F2————配置时钟延迟不准的问题

STM32F2配置时钟问题 笔者在本科毕业设计使用STM32F207芯片,但是在配置时钟时出现了问题。 问题 我按照F1写代码的延时函数放在F2竟然不准了 换个办法 使用Systick时钟也是不准,原因是笔者代

为什么重写printf函数没有用?

以前在网上找了无数方法去重写printf函数,但发现都没效果,今天偶然发现重写printf函数可以了,原因是以前没有勾选微库(Use MicroLlB)! 这里