大家好,我是8号线攻城狮,今天给大家推荐一个朋友自己做的开源项目。学习单片机的小伙伴,对J-link一定不会陌生。J-link可以使用JATA和SWD接口进行在线Debug和程序的烧录,曾经一段时间,某宝上J-Link铺天盖地,各种各样,价格百家争艳一个比一个低,让单片机初学者有了非常多的选择。J-Link的在线Debug也方便了我们的学习,让我们认识到了单片机是如何一步一步执行程序的。J-Link和Keil简直是绝配。
收费的J-Link
但是好景不长,因为J-Link不是开源的,具有版权,正主给某宝发了涵,仿佛一夜之间,J-Link都被下架了,不仅仅如此,在使用Keil调试/烧录程序的时候,会弹出对话框,警告你的J-Link可能是一个盗版。
除了后来的AD涵之外,这可能是单片机初学者面对的第一个盗版警告,一个方便的工具,自此变得一点都不简单,正版200元不等,够买一块STM32的单片机开发板了。烧录工具也是有开源的,可以不用担心版权问题。
CMSIS
学习过STM32的小伙伴,对CMSIS一定不陌生,他是ARM Cortex™ 微控制器软件接口标准,可以为MCU和外设实现一致且简单的软件接口,从而简化软件的重用、缩短新MCU的学习过程、缩短新设备的上市时间。
顾名思义,只要Cortex™ 系列的内核,就可以使用。
CMSIS-DAP / DAP-Link
ARM Cortex™ 内核的MCU在市场上的产品随处可见,如Cortex M系列内核的有:ST公司的STM32系列MCU产品、NXP公司的LPC系列MCU产品、国产 的MM32系列MCU产品、GD32系列MCU产品等等,目前它们的年出货量是以亿为单位。该内核的单片机在烧录时会用到JTAG或者SWD接口的下载器,而常用的J-Link和ST-Link如前文所说,价格较贵且存在版权问题,而CMSIS-DAP是ARM官方开源的下载器,具备SWD调试接口,同时还带虚拟串口,拖拽式下载等功能。既能实现比肩J-Link的下载速度有没有版权问题,一举多得。
Github开源站点
CMSIS-DAP在Github上开源,其硬件开源地址为:
https://github.com/ARMmbed/mbed-HDKGithub
其软件开源地址为:
https://github.com/ARMmbed/DAPLink
Github
CMSIS-DAP目前源码固件主要使用在LPC11U35以及MK20DX128VFM5的硬件上,成熟的硬件方案有三个:
DIPDAP(主芯片:LCP11U35FHI33/501)
STDAP(主芯片:STM32F103CBT6)
SWDAP(主芯片:LCP11U35FHI33/501)
CMSIS-DAP可以对ARM Cortex内核(如 Cortex M3)进行仿真调试,并且提供源码和硬件,这样可以使用户可以轻松的集成一个仿真调试器到自己的项 目上而无需担心版权问题。
我已经验证开源方案
作为一名电子爱好者,当然不会放过开源的机会,我实现了这个开源方案,并且用在了我的项目开发中,并给他起了一个很萌的名字:小猛龙。
CMSIS-DAPDebug场景如下:
使用现有的资料实现开源项目,虽有了一丢丢的成就感,但是如果能实现J-Link的下载速度,那才是最有成就感的。
在和J-Link的对比测试中,hex的大小为725k(win10环境下占用空间大校),J-Link烧录所用的时间为17秒多;而CMSIS-DAP用时18秒多。
并且在MAC平台上也可以使用CMSIS-DAP