打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CMSIS-DAP调试标准解读
userphoto

2018.01.19

关注
今天和大家聊聊单片机开发那点事,如果问100个单片机开发工程师是否用过J-Link仿真器,相信其中的90个会说Yes。但是如果再问那90个工程师,是否正在使用正版的仿真器,估计没有几个敢说Yes。好吧,兄弟我也是一样,用过那么多个D版的J-Link仿真器,真的想对逆向工程破解J-Link的人表示最高敬意啊,毕竟将ARM MCU的开发工具的花费降到了最低!
J-Link仿真器长这样的:
很多刚刚入门ARM MCU开发的工程师,会认为J-Link是开发ARM MCU的标准配置,进而也会想当然认为也许J-Link是ARM公司的产品,小哥我当年也是这样认为的。可是可是,情况并不是这样滴啊。其实啊,ARM公司自己推出的仿真器叫做ULINK系列,最常用的一款是ULINK2,长这样子滴:
正版的ULINK2也好贵,估计在1000元以上,不要问我具体是什么价格,小哥也没有用过正版啊~ 幸运的是,我朝备有人才出,那些逆向工程和破解固件的大神们,早就破解并克隆了。因此x宝网站搜一搜,可以看到ULINK2的价格啊,嘿嘿,50元包邮~
后来ARM推出mbed项目,顺带出来了个CMSIS-DAP,CMSIS-DAP是OnBoard(OB)调试工具。
那么问题来了,CMSIS-DAP又是啥玩意?和J-Link,ULINK2等仿真器是啥关系呢?
J-link 、Ulink实现了jtag协议,并且在上位机做了附加软件,方便用户使用,控制,调试芯片内部的程序。 cmsis dap同样实现了调试口DAP协议,但是使用usb hid实现,所以很轻量级。一般带USB的16MHz主频的MCU即可实现。目前cmsis dap得到了openOCD和pyOCD的支持,同样可以实现jlink上位机的功能。
使用usb hid协议,向下对于调试器的实现来说降低了复杂度,向上对于IDE的集成带来的好处则是免驱动,方便IDE集成并支持调试器。
下面就来单独讲讲CMSIS-DAP。
CMSIS-DAP名字好长啊,这个名字本身就可以拆解两个部分,CMSIS和DAP。
先来说说CMSIS,是ARMCortex-M Software Interface Standard的缩写,也就是ARM Cortex-MMCU软件接口标准。从ARM官方网站上可以查到CMSIS的介绍:http://www.arm.com/zh/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
DAP呢,就是DebugAccess Port的意思,也就是调试访问口。所以CMSIS-DAP的意思,差不多就是ARM公司推出的一个标准的软件调试访问接口,基本的介绍看这里:http://www.keil.com/support/man/docs/dapdebug/dapdebug_introduction.htm
该网页是英文的,用我的破英文翻译原文:
CMSIS-DAP是USB调试器设备单元的一种固件实现。运行在主机电脑上的调试软件,通过USB接口的调试器设备,最终能够调试运行在目标MCU上的应用软件。CMSIS-DAP调试设备通过JTAG或者SWD连接到目标设备。ARM Cortex 处理器提供了CoreSight Debug和Trace单元。CMSIS-DAP调试器能够支持那些包含一个或者多个ARM内核的处理器。
框图如下:
上图中可以看到,CMSIS-DAP调试器不仅仅可以调试Cortex-M内核的单片机,还可以对Cortex-A系列的高端处理器进行调试。而主机开发环境,则支持MDK,DS-5,当然较为新版的IAR For ARM中也已经对CMSIS-DAP实现完美支持~ 不信?来来来,眼见为实~MDK中对CMSIS-DAP调试器的支持:
IAR中对于CMSIS-DAP调试器的支持:
所以CMSIS-DAP调试器的功能其实就是替代J-Link,ULINK2等调试器,由于其实现的起来固件比较简单,因此越来越多的ARM处理器的厂商开始在自家的开发板配备CMSIS-DAP的功能。在此之前,很多ARM处理器厂家想要在自家的官方开发板上配备调试器,但是又不太愿意花费精力去实现调试器,所以大多数都选择J-Link Lite版本。
列举几个配备CMSIS-DAP调试器的官方ARM处理器官方开发板:
(1)      NXP的FRDM开发板系列,主要用于评估KinetisM0+/M4内核MCU
(2)   Nordic公司的nRF51-DK开发板,支持目标芯片CortexM0内核nRF51822和nRF51422
嘿嘿,讲了这么多,好累。终于到了广告时间了。接下来给大家介绍一款超迷你的CMSIS-DAP调试器实现方案,并且该方案还加入了多种功能,方便大家调试ARM内核的MCU。当当当当,它就是CMSIS-DAP Mini仿真器
它长这样:
CMSIS-DAP Mini仿真器具备特点:
(1)在线仿真调试的功能
- 采用高速的ARM内核处理器实现调试的协议,性能稳定,快速
- 与MDK,IAR,GCC等环境无缝配合,插上即可识别
- 支持SWD、JTAG两种不同的调试接口
(2)USB转串口
- 只需一条USB线即可完成调试仿真+虚拟串口的功能
- 虚拟串口,波特率可调
- 采用USB CDC组合设备支持虚拟串口
(3)为目标板供电
- 提供3.3V,最大150mA的电流
- 可以为您的开发板供电,无需任何电源,即可玩转ARM
(4)无版权顾虑
- 使用盗版的J-Link调试器,其实是具有法律风险的
- CMSIS-DAP Mini则无需担心版权问题,可放心使用!
(5)支持所有Cortex-M系列的ARM处理器
- 比如STM32, Kinetis, LPC, Atmel, EFM32,GD32等等
(6)体积超小
- CMSIS-DAP Mini仿真器体积超小,半张名片大小
- 重量轻巧,非常适合组建口袋实验室
(7)支持标准ARM JTAG接口标准
- 带10P,2.54MM间距的ARM JTAG标准
- 配套的10P-20P转接板,支持2.54MM间距,20P的最常用ARM JTAG接口
硬件接口这样的:
硬件接口如上图所示,总共有三个部分:
(1)10针的标准2.54MM接口,如图左上角为Pin 1脚
Pin脚编号  功能
Pin脚编号
功能
1  接用户目标板的电源,用户板子没有上电时,仿真器的驱动信号没有输出
2
JTAG_TMS 或者SWD_DIO
3  接单片机的UART RX脚
4
JTAG_TCK或者SWD_CLK
5  接单片机的UART TX脚
6
JTAG_TDO
7  供电脚,3.3V,输出给目标板,最大150mA电流驱动能力
8
JTAG_TDI
9  GND,接地
10
接单片机的复位脚
(2)转接板4帧的接口,下方是电源灯,如果短路,灯灭
Pin脚编号
功能
1 – TGT-RX
接用户板子的单片机UART RX脚,与仿真器10P接口的3脚直连
2 – TGT-TX
接用户板子的单片机UART TX脚,与仿真器10P接口的5脚直连
3 – 3.3V
供电脚,3.3V,与仿真器10P接口的7脚直连
4- GND
接地脚
(3)标准的20P 2.54MM间距JTAG接口,与J-Link兼容
那么这东西现在在哪里呢? 目前正在电子发烧友论坛众筹,火热进行中,当然,时间不多了,如果喜欢它,请支持~
http://z.elecfans.com/22.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
J-LINK而学习的jtag和arm仿真器的心得 (wiggler, multi-ICE, ulink, jlink)
ARM 开发软件及实用工具介绍 中国电子开发网(www.ourdev.cn)
浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
ARM DS-5 RVDS MDK-ARM 三款ARM官方工具软件比较区别选择
ARM基础教程 | ARM Cortex-M的调试和跟踪技术
All-In-One 嵌入式系统平台概述
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服