关于STM32调试器CMSIS_DAP的使用及注意事项
打个广告
博主做的脱机烧录器:重磅来袭!CMSIS-DAP 脱机烧录器 EasyFlasher 发布~
某宝店铺:觉皇工作室
购买链接:https://item.taobao.com/item.htm?abbucket=18&id=841061310319
实物图,MINI版:
实物图,COOL版:
说明
最近在做了一个DAP调试器,完全开源的方案,大部分代码都是由STM32CUBEMX生成的,使用的STM32CubeIDE作为开发环境,集成共以下四种功能:
- 在线模式(在线调试用)
- 离线模式(脱机下载)
- U盘模式(用于离线模式时存放固件)
- 串口模式(USB转TTL串口功能)
目前使用了正点原子的mini开发板做的测试,代码已经编写完毕并且调试通过,准备画个板子打个小板真正的做出实物来。
我为了节省IO所以使用的SWD方式,并且SWDIO和SWCLK使用的引脚是PB10和PB11,因为这两个引脚正好是串口3的RX和TX,这样的话串口模式和在离线模式共用IO,体现在实物上就是不需要在额外引出两个串口的引脚了。
所以我全部的IO就四个:3.3V、GND、SWDIO(TX)、SWCLK(RX),市面上的SWD模式的DAP仿真器一般是5个引脚,多了一个硬件RST引脚。
我省略硬件RST引脚的原因有下:
- 实际中做板子时候STM32单片机的RST引脚一般直接拉高了,不会接出来
- DAP大多数是使用软件复位
使用注意事项
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时没起作用,没有发出相应的软启动的命令