今天和大家聊聊单片机开发那点事,如果问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./zh/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php DAP呢,就是DebugAccess Port的意思,也就是调试访问口。所以CMSIS-DAP的意思,差不多就是ARM公司推出的一个标准的软件调试访问接口,基本的介绍看这里:http://www./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版本。 (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脚
(2)转接板4帧的接口,下方是电源灯,如果短路,灯灭
(3)标准的20P 2.54MM间距JTAG接口,与J-Link兼容 |
|