
目前市面上好像就正点原子出了USB High Speed的DAP仿真器,而且是基于CMSIS-DAP做的,ARM Mbed社区已经停止对CMSIS-DAP的支持了,目前官方社区一直在力推DAPLink的方案,DAPLink相当于CMSIS-DAP的升级版,支持更多的功能。! d, J4 G/ } [# [ DAPLink的WEBUSB和拖拽烧录确实很有用,尤其是在板载仿真器、或者儿童教育开发板如Micro-Bit之类的场景,用户侧可以不需要安装任何IDE和驱动即可完成编程。 ' |9 y5 t2 L' ]' W- Q 对于使用USB中断传输的DAP协议,USB High Speed 可在1ms内传递8个microframe,而每个micriframe又包含3个packet,每个packet最大可为1024Bytes,传输速度为 1000 * 3 * 8 * 1024 = 23.4375MB/s,而USB全速设备则只能在1ms内传输64Bytes,传输速度为62.5KB/s,而DAP协议又是应答式的通信,host发送请求数据包 -> DAP回复数据包,所以烧录flash的话速度还得打个对折,极限仅为31.25KB/s。( j" k1 W$ j& {3 v 对于USB High Speed来说,实际上此时的编程瓶颈已经不受限于USB传输速度了,已经完全取决于目标芯片的flash编程速度,以及使用的烧录算法了。 z1 X# B2 m- g3 u2 h$ D e & W' ^, v3 P- g 关于DAPLink的前世今生请见这篇文章 U$ j6 k4 H( n8 ^1 g6 P1 z 痞子衡嵌入式:飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景与架构 这是基于官方DAPLink实现的方案,芯片是Atmel SAM3U2C,USB High Speed,内置USB高速phy,主频为96Mhz。# E' A( T5 \# u: t$ M% t( q 目前官方DAPLink支持USB High Speed的方案有SAM3U2C,K26F,LPC4322,综合调研了一下,成本上考虑,SAM3U2C应该是最合适的。7 L5 a* }9 A( R4 n- \ 初步测试了一下速度,烧录STM32F4 928KB的镜像,时间在27s左右,从正点原子当前公布的数据来看,应该比他们的快,比jlink v10和stlink v3也要更快一些。 下面是一个和DPALink普通版对比的测评视频 http://www.bilibili.com/video/av71037093 / G3 ?' H5 @. d 目前方案正在众筹,由于芯片成本比较高,估计价格在50-60之间(众筹相当于是福利,为大家服务:) 楼主基本上是不赚钱的)。 欢迎感兴趣的朋友加入众筹QQ群940182296 一起讨论~!# k' f* Y: R' f & r$ S. d1 A" x$ _ A: W ) t9 {) r, Q3 P" K- `9 W; c9 R ( s# e" B6 a3 j0 c; _/ |4 @* z / w. l [" n0 B8 V ' C, Z" n0 s* B# T- @) g" K3 M # O9 Z; n. l7 S. s+ ]! l* n9 h |
2
1
USB High Speed
æ£ç¹ååæµè¯æ°æ®
成本高的话买ST LINK V3 MINI的也可以啊
9 o8 u3 I, y! e9 n" f
楼主的视频中使用Keil软件下载程序,其实只是用到了CMSIS-DAP的功能。
DAPLink只有捆绑开发板一起销售才有意义,因为不同的目标板IC不同,下载算法不同,都需要不同版本的DAPLink固件,这对于我们这些码农来说太麻烦了。 最大的问题是现成的DAPLink的固件,支持的IC非常有限,比如官网上面SAM3U2C的DAPLink还不支持STM32,支持STM32的DAPLink几乎只有STM32F103xx一种(最麻烦的还是,F103也不支持所有的STM32,只支持有限的几种)。 用户不可能个个都去自己研究DAPLink,把自己的目标板IC搞到DAPLink支持。4 h# w8 ], Z3 u
) c4 z/ }4 t! ?$ o( H9 x0 v9 |
所以,独立的DAPLink工具,用途不大,建议楼主卖方案给开发板供应商。 . r! l( j; {; l
或者不提DAPLink,只是卖高速的CMSIS-DAP给大家。
是的,DAPLink一般来说是做在开发板中作为板载的调试器最为方便。大部分人确实只要用到CMSIS-DAP就够了,但是跟着社区走,后面相信会有更多更强的功能推出来。
你说的目前不支持STM32拖拽烧录,其实支持STM32可以很简单,编程的框架都有了,只是社区没有做而已(推测可能是版权的关系),社区已经提供了工具,STM32的所有烧录算法都在C:\Keil_v5\ARM\Flash下的flm文件中(当然这个下面不止STM32,所有你安装的pack包包含的其他芯片的烧录算法都在下面,市面上卖的脱机烧录器应该也都是从这里面扒的算法),flm就是一个elf文件,里面就是是对应芯片的擦除、编程的函数,用工具扒出来,套到官方的框架里就可以运行了。
CMSIS-DAP,功能类似于JLINK/STLINK,可以用于各种常见的开发环境,适合码农,但不适合儿童使用。
DAPLink,包括CMSIS-DAP的全部功能,增加了拖拽下载/WebUSB下载功能,是ARM公司为开发板供应商提供的一种廉价开发环境,也可以说是与开发板供应商共同发展出来的。 有几个原因:
1. 价格便宜,整套开发板的价格就不贵,不必要求终端用户购买JLINK等仿真器,也不需要MDK/Keil等收费的IDE即可使用。 常见的有pyOCD, mBed, GCC等等。
2. 带有DAPLink的系统,开发板供应商/第三方软件商,可以包装出一种儿童使用的硬件+软件开发环境,儿童不需要知道DAPLink的存在和C语言什么的,基本上都是图形化的,各种图标在屏幕上面拖来拖去的,也能完成计算机教育从娃娃抓起。 国外很流行。* K) a& |* @. N K# f0 {$ n' w
对这里的码农来说,DAPLink可以看作是CMSIS-DAP的同义词。
依我之见,DAPLink有以下几个好处
1. 由于实现了MSD Bootloader,升级固件极为方便,可轻松升级成不同的固件以实现不同的功能,这个MSD Bootloader甚至可以利用到自己的产品中,而且由于是开源的,可方便的进行定制,例如实现镜像加解密等。4 s& c1 O: Q3 z, Z% _8 Z0 M! I* x
2. 产品交付给客户或者经销商时,可附带一个DAPLink,万一发现产品中有bug需要升级,经销商不需要安装上位机软件,可自行用DAPLink拖拽升级产品固件。
3. DAPLink本身是开源的,而且使用了RTX OS,对于学习嵌入式的朋友来说也是很好的资料,关于USB传输、FAT文件系统、RTX 也有较大的参考学习价值。