├── Images ├── DAPLink.png ├── DAPLink1.png ├── DAPLink2.png ├── DAPLink3.png ├── DAPLink4.png ├── DAPLink-BOM.png ├── DAPLink-JX01.jpg ├── DAPLink-JX02.jpg ├── DAPLink-MDK1.png └── DAPLink-design.png ├── Hardware ├── 技新DAPLink-BOM.xlsx ├── PCB_DAPLink-JX_20180807175309.pdf ├── Gerber_DAPLink_JX_20180807175025.zip └── Schematic_DAPLink-JX_DAPLink-JX_20180807174801.pdf ├── LICENSE ├── README.md ├── DAPLink-Devlopres.md ├── DAPLink-Hardware.md ├── DAPLink-Introduce.md └── DAPLink-Apply.md /Images/DAPLink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink.png -------------------------------------------------------------------------------- /Images/DAPLink1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink1.png -------------------------------------------------------------------------------- /Images/DAPLink2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink2.png -------------------------------------------------------------------------------- /Images/DAPLink3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink3.png -------------------------------------------------------------------------------- /Images/DAPLink4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink4.png -------------------------------------------------------------------------------- /Images/DAPLink-BOM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink-BOM.png -------------------------------------------------------------------------------- /Images/DAPLink-JX01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink-JX01.jpg -------------------------------------------------------------------------------- /Images/DAPLink-JX02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink-JX02.jpg -------------------------------------------------------------------------------- /Images/DAPLink-MDK1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink-MDK1.png -------------------------------------------------------------------------------- /Hardware/技新DAPLink-BOM.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Hardware/技新DAPLink-BOM.xlsx -------------------------------------------------------------------------------- /Images/DAPLink-design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Images/DAPLink-design.png -------------------------------------------------------------------------------- /Hardware/PCB_DAPLink-JX_20180807175309.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Hardware/PCB_DAPLink-JX_20180807175309.pdf -------------------------------------------------------------------------------- /Hardware/Gerber_DAPLink_JX_20180807175025.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Hardware/Gerber_DAPLink_JX_20180807175025.zip -------------------------------------------------------------------------------- /Hardware/Schematic_DAPLink-JX_DAPLink-JX_20180807174801.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LGG001/DAPLink-Brochure/HEAD/Hardware/Schematic_DAPLink-JX_DAPLink-JX_20180807174801.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 林光光 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 小册介绍 2 | 3 | ARM Cortex内核的MCU在市场上的产品随处可见,如Cortex M系列内核的有:ST公司的STM32系列MCU产品、NXP公司的LPC系列MCU产品、国产的MM32系列MCU产品、GD32系列MCU产品等等,目前它们的年出货量是以亿为单位。不管是在校的电子专业相关的学生或是在职工程师,掌握一款Cortex内核的MCU是非常有必要的。 4 | 5 | Cortex 内核中带有特定的下载调试单元(如Cortex M中的CMSIS接口),可以通过JTAG或SWD接口进行程序调试下载,也就需要带一个JTAG或SWD接口的下载器。目前市场上比较好用的下载器有两种:J-LINK、ST-LINK,但是它们的价格昂贵而且带有版权。DAPLink是ARM官方开源的下试器,具备JTAG和SWD两种接口,同时还带虚拟串口,拖拽式下载等功能。**本小册讲述如何制作一个官方的DAPLink下载器** 6 | 7 | ### 本小册能学到哪些知识 8 | 9 | * 认识DAPlink 10 | * 从零制作一个官方DAPLink 11 | * DAPLink的使用 12 | 13 | ### 适宜人群 14 | 15 | * 对DAPLink感兴趣的开发者 16 | * 想制作一个DAPLink下载器的电子工程师 17 | * 具备一定动手能力的电子工程师 18 | * 有一台Windows电脑的电子工程师 19 | * 有一点单片机编程基础的电子工程师 20 | 21 | 22 | ## 章节介绍 23 | 24 | * [第一章 DAPLink简介](DAPLink-Introduce.md) 25 | >DAPLink简介 26 | >DAPLink功能介绍 27 | >DAPLink官方介绍 28 | >本章小结 29 | 30 | * [第二章 DAPLink开发环境搭建](DAPLink-Devlopres.md) 31 | >Windows工具安装 32 | >获取源码&生成MDK工程 33 | >编译源码 34 | >其他问题&解决方法 35 | >本章小结 36 | 37 | * [第三章 DAPLink硬件设计](DAPLink-Hardware.md) 38 | >官方DAPLink硬件 39 | >技新DAPlink硬件 40 | >本章小结 41 | 42 | * [第四章 DAPLink配置与应用](DAPLink-Apply.md) 43 | >DAPLink固件更新 44 | >DAPLink在ARM-MDK中的使用 45 | >DAPLink的MSD命令使用 46 | >DAPLink其他功能介绍 47 | >本章小结 48 | 49 | ### 章节预览 50 | ![技新DAPLink](/Images/DAPLink-design.png) 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /DAPLink-Devlopres.md: -------------------------------------------------------------------------------- 1 | 2 | ## Windows工具安装 3 | 4 | 本章介绍在Windows下的DAPLink开发环境搭建。安装的工具列表如下,如果有些工具已经安装好可以跳过(*注意:软件安装包尽量选择最新版,选择适合自己电脑的32/64位安装包*) 5 | 6 | * **Python2**,版本2.7.9以上,并添加环境变量 :point_right:[下载地址](https://www.python.org/downloads/) 7 | * **Git**,并添加环境变量 :point_right:[下载地址](https://git-scm.com/downloads) 8 | * **Keil MDK-ARM** :point_right:[下载地址](https://www.keil.com/download/product/) 9 | *注意:软件安装时尽量使用默认路径* 10 | 11 | 12 | 13 | ## 获取源码&生成MDK工程 14 | 15 | *将需要的的工具安装完成后,点击鼠标右键,选择**Git Bash Here**打开Git命令行界面,按以下步骤输入命令进行操作* 16 | 17 | 18 | 19 | 1. 下载DAPlink源码到本地 20 | ``` 21 | $ git clone https://github.com/mbedmicro/DAPLink 22 | ``` 23 | 24 | 2. 切换到DAPLink目录下 25 | ``` 26 | $ cd DAPLink 27 | ``` 28 | 29 | 3. 安装虚拟环境 30 | ``` 31 | $ pip install virtualenv 32 | ``` 33 | 34 | 4. 进入拟环境 35 | ``` 36 | $ virtualenv venv 37 | ``` 38 | 39 | 5. 启动虚拟环境下的脚本 40 | ``` 41 | $ venv/Scripts/activate 42 | ``` 43 | 44 | 6. 安装requirements.txt表中的工具 45 | ``` 46 | $ pip install -r requirements.txt 47 | ``` 48 | 49 | 7. 生成MDK工程 50 | ``` 51 | $ progen generate -t uvision 52 | ``` 53 | *关闭Git命令行界面,在DAPlink目录下有个projectfiles文件夹,里面就是生成的MDK工程,可使用MDK-ARM工具打开* 54 | 55 | 56 | ## 编译源码 57 | 58 | 1. 打开*DAPLink\projectfiles\uvision*目录下的工程,如*lpc11u35_lpc812xpresso_if*工程,如弹出**Using an MDK Version 4 Project**窗口,选择**Migrate to Device Pack** 59 | 60 | 61 | 2. 此时会打开**Pack Install**窗口并自动下载安装相应的固件包,等待安装完成并关闭 62 | 63 | 64 | 3. 编译工程,在lpc11u35_lpc812xpresso_if\build目录会生成.bin和.hex文件 65 | 66 | 67 | 68 | ## 其他问题&解决方法 69 | 70 | * **编译源码**的第1步中提示的问题是因为MDK-ARM版本问题引起,可安装对应MDK-ARM的MDK4兼容包解决 :point_right:[下载地址](http://www2.keil.com/mdk5/legacy) 71 | * **编译源码**的第2步中如果提示找不到LPC11U35型号,可在**Pack Install**窗口搜索`LPC1100`并安装LPC1100 Series固件包;或者在KEIL官网下载安装LPC1100 Series固件包 :point_right:[下载地址](http://www.keil.com/dd2/Pack/) 72 | * 工程目录*projectfiles\uvision\*下的文件,以`_if`结尾的工程是对应工程的应用程序;`_bl`结尾的是对应工程的Bootloader应用程序,LPC11U35自带Bootloader程序 73 | 74 | 75 | ## 本章小结 76 | 77 | 本章内容介绍DAPLink开发环境的搭建,并在搭建好的环境中下载并生成MDK工程,然后使用MDK编译官方的源码生成.bin和.hex文件。通过本章内容可以了解官方源码开发的环境以及使用,后面会介绍DAPLink官方提供的硬件版本,并在其上面烧录本章编译生成的固件 78 | 79 | -------------------------------------------------------------------------------- /DAPLink-Hardware.md: -------------------------------------------------------------------------------- 1 | ## 官方DAPLink硬件 2 | 3 | 官方DAPLink硬件是开源的,开源地址 :point_right: [Github](https://github.com/ARMmbed/mbed-HDK) 4 | 5 | 目前成熟的DAPLink硬件方案有三个,分别是位于mbed-HDK\Production Design Projects\ARM-mbed\DAPLink目录下的: 6 | * DIPDAP 7 | * STDAP 8 | * SWDAP 9 | 10 | 11 | ### DIPDAP 12 | 13 | ![here](http://uk.rs-online.com/largeimages/R9054100-01.jpg "DIPDAP-mbed") 14 | 15 | DIPDAP是基于NXP LPC11U35为核心,支持CMSIS-DAP接口、拖拽式下载、虚拟串口等功能,DIAPDAP硬件包括以下内容: 16 | * Eagle原理图和板子文件*(注:Eagle是PCB Layout软件)* 17 | * PDF版原理图和板子副本文件 18 | * Gerber生产文件 19 | * BOM(材料清单) 20 | * eBOM(一份网上购物清单,方便购买!) 21 | 22 | 通过DIPDAP提供的硬件材料,用户可以轻松的制作一个,如果嫌麻烦可以在网上购买成品, :point_right: [购买地址](http://uk.rs-online.com/web/p/processor-microcontroller-development-kits/9054100/) 23 | 24 | 25 | ### STDAP 26 | 27 | STDAP是基于ST STM32F103CBT6为核心,支持CMSIS-DAP接口、拖拽式下载、虚拟串口等功能,DIAPDAP硬件包括以下内容: 28 | * Eagle原理图和板子文件*(注:Eagle是PCB Layout软件)* 29 | * PDF版原理图和板子副本文件 30 | * Gerber生产文件 31 | * BOM(材料清单) 32 | * eBOM(一份网上购物清单,方便购买!) 33 | 34 | ***需要注意的是,目前官方的DAPLink固件中并没有支持STDAP的固件*** 35 | 36 | 37 | ### SWDAP 38 | 39 | ![here](http://uk.rs-online.com/largeimages/R9054104-01.jpg "SWDAP-mbed") 40 | 41 | DIPDAP是基于NXP LPC11U35为核心,支持CMSIS-DAP接口、拖拽式下载等功能,DIAPDAP硬件包括以下内容: 42 | * Eagle原理图和板子文件*(注:Eagle是PCB Layout软件)* 43 | * PDF版原理图和板子副本文件 44 | * Gerber生产文件 45 | * BOM(材料清单) 46 | * eBOM(一份网上购物清单,方便购买!) 47 | 48 | 通过DIPDAP提供的硬件材料,用户可以轻松的制作一个,如果嫌麻烦可以在网上购买成品, :point_right: [购买地址](http://uk.rs-online.com/web/p/processor-microcontroller-development-kits/9054104/) 49 | 50 | 51 | ## 技新DAPLink硬件 52 | 53 | ![技新DAPLink](/Images/DAPLink-JX01.jpg) 54 | 55 | 技新DAPLink参考官方DIPDAP硬件设计,以NXP LPC11U35为核心,支持CMSIS-DAP接口、拖拽式下载、虚拟串口等功能。技新DAPLink设计采用[**LCEDA**](https://lceda.cn/),元器件在[**立创商城**](https://www.szlcsc.com/)平台采购,PCB在[**嘉立创**](https://www.sz-jlc.com/home/index.html#)平台生产。技新DAPLink也是开源的,包括: 56 | * Gerber文件,可直接打样生产 57 | * PCB文件、原理图文件 58 | * BOM(元器件采购清单) 59 | 60 | ![技新DAPLink-BOM](/Images/DAPLink-BOM.png) 61 | 62 | 技新DAPLink的设计主要是为了解决以下问题: 63 | * 官方DAPLink硬件在国内购买比较麻烦 64 | * 官方DAPLink硬件的BOM中的元器件国内购买比较麻烦 65 | * 提供一个官方DAPLink设计参考 66 | * 提供一个官方DAPLink方案验证 67 | * 作为小册的硬件实验使用 68 | 69 | *技新DAPLink硬件地址 :point_right: [DAPLink_JX](https://lceda.cn/jixin002/daplink_jx)* 70 | *技新DAPLink购买地址 :point_right: [淘宝](https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.53701debuPoaU9&id=575455906543)* 71 | *技新DAPLink开源地址 :point_right: [码云](https://gitee.com/jixiaoxin/DAPLink-Brochures)* 72 | 73 | 74 | ## 本章小结 75 | 76 | 本章内容主要介绍了官方的DAPLink硬件以及技新DAPLink硬件,并且都是开源的,用户可以根据提供的资料自己制作或者到相应的网站上购买,同时DAPLink硬件也是作为DAPLink固件的载体,为下一章验证测试DAPLink固件做准备 77 | 78 | 79 | -------------------------------------------------------------------------------- /DAPLink-Introduce.md: -------------------------------------------------------------------------------- 1 | ## DAPLink简介 2 | 3 | DAPLink是ARM官方的一款开源的调试仿真器,之前叫CMSIS-DAP。DAPLink的软件和硬件都在Github上开源: 4 | * DAPLink软件地址 :point_right: [Github](https://github.com/ARMmbed/DAPLink) 5 | * DAPLink硬件地址 :point_right: [Github](https://github.com/ARMmbed/mbed-HDK) 6 | 7 | DAPLink目前源码固件主要使用在LPC11U35以及MK20DX128VFM5的硬件上,并在Github上开源,成熟的DAPLink硬件方案有三个: 8 | * DIPDAP(主芯片:LCP11U35FHI33/501) 9 | * STDAP(主芯片:STM32F103CBT6) 10 | * SWDAP(主芯片:LCP11U35FHI33/501) 11 | 12 | DAPLink可以对ARM Cortex内核(*如 Cortex M3*)进行仿真调试,并且提供源码和硬件,这样可以使用户可以轻松的集成一个仿真调试器到自己的项目上而无需担心版权问题。DAPLink不仅拥有仿真调试功能,同时它还具备虚拟串口和拖拽式下载功能(*拖拽式下载只支持固件上对应的MCU*) 13 | 14 | 15 | ## DAPLink功能介绍 16 | 17 | * MSC-拖拽式下载 18 | * CDC-日志打印、追踪和终端仿真的虚拟串口 19 | * HID-CMSIS-DAP兼容式调试接口 20 | * WEBUSB HID-CMSIS-DAP兼容式调试接口 21 | 22 | ### MSC拖拽式下载 23 | 24 | 通过复制或保存一个DAPLink支持的格式文件DAPLink的虚拟U盘中,完成后DAPLink设备就会重启。如果发生错误,错误的信息就会存放在FAIL.TXT中 25 | 26 | DAPLink的MSC功能支持的文件格式如下: 27 | * .bin 28 | * .hex 29 | 30 | 31 | ### CDC-日志打印、追踪和终端仿真的虚拟串口 32 | 33 | CDC虚拟串口功能具备普通的串口IC功能,串行端口直接连接到目标MCU,允许双向通信。它还允许通过在串行端口上发送中断命令来重置目标。 34 | 35 | 串口通讯支持的波特率如下: 36 | * 9600 37 | * 14400 38 | * 19200 39 | * 28800 40 | * 38400 41 | * 56000 42 | * 57600 43 | * 115200 44 | *注:大多数DAPLink还支持这里列出来之外的串口通讯波特率* 45 | 46 | 47 | ### HID-CMSIS-DAP兼容式调试接口 48 | 49 | CMSIS-DAP接口可以在任何支持CMSISI-DAP协议的IDE中进行调试,其中包括: 50 | * [pyOCD](https://github.com/mbedmicro/pyOCD) 51 | * [uVision](http://www.keil.com/) 52 | * [IAR](https://www.iar.com/) 53 | 54 | 55 | ### WEBUSB HID-CMSIS-DAP兼容式调试接口 56 | 57 | WEBUSB HID-CMSIS-DAP是用于网页上进行调试的接口。 58 | 59 | 60 | 61 | ## DAPLink官方介绍 62 | 63 | [![DAPLink](/Images/DAPLink.png)](https://armmbed.github.io/DAPLink/) 64 | 65 | Arm Mbed DAPLink是一个开源软件项目,它能够在Arm Cortex架构上的CPU运行编程和调试应用程序。DAPLink是作为应用MCU的SWD或JTAG接口的辅助型MCU,通常称之为接口固件。这种配置几乎在所有的开发板上都可以看到,DAPLink枚举为一个USB复合设备,为开发者的计算机和CPU调试访问端口之间建立了一个桥梁。DAPLink能让开发者具有: 66 | 67 | * MSC-拖拽式编程FLASH闪存 68 | * CDC-日志打印、追踪和终端仿真的虚拟串口 69 | * HID-CMSIS-DAP兼容式调试接口 70 | * WEBUSB HID-CMSIS-DAP兼容式调试接口 71 | 72 | 更多的功能正在规划兵渐渐展现出来。DAPLink项目不断地在Arm、它的合作伙伴、众多的硬件供应商和世界各地的开源社区的大力开发之下,取代了CMSIS-DAP接口固件项目,你可以尽情使用和贡献。Enjoy! 73 | 74 | 更多可用的细节信息可查看DAPLink用户指南[DAPLink用户指南](https://github.com/ARMmbed/DAPLink/blob/master/docs/USERS-GUIDE.md) 75 | 76 | 77 | ### 兼容性 78 | 79 | DAPLink接口固件已经运行在许多基于ARM微控制器的硬件接口电路(HICs),它们可用作独立的(调试器)板子或作为开发工具的一部分。一些已知的IO兼容品牌的电路如下: 80 | * [NXP OpenSDA based on K20, K22 and KL26](http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA) 81 | * [NXP LPC-Link2 based on LPC11U35 or LPC4322](https://www.nxp.com/support/developer-resources/hardware-development-tools/lpcxpresso-boards:LPCXPRESSO-BOARDS) 82 | * [Segger J-Link OB based on Atmel SAM3U](https://www.segger.com/products/debug-probes/j-link/models/j-link-ob/) 83 | * Maxim Epsilon based on MAX32550 - coming soon 84 | 85 | 86 | ### 版本 87 | 88 | DAPLink官方的Github仓库创建了许多板级构建(板 = HIC + 目标组合)。季度版本将包含新的特性和修复BUG,一旦根据报告、验证并修复BUG,就会发布独立的修复BUG后的版本无论是季度版本还是修复Bug版本,都会导致生成号递增。许多开发工具包和产品与DaPink接口固件一起运行,或者能够运行DaPink固件。当前发布版本和更新DaPink界面固件的指令是在[DaPink发布站点](https://armmbed.github.io/DAPLink/)上托管的。发行说明和以前发布版本可以在GITHUB发行版中找到 89 | 90 | 91 | ## 本章小结 92 | 93 | 本章内容介绍了DAPLink的相关信息,包括它的特点、功能、软件、硬件等,在后续章节会通过官方的源码以及硬件来制作一个官方的DAPLink 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /DAPLink-Apply.md: -------------------------------------------------------------------------------- 1 | ## DAPLink固件更新 2 | 3 | DAPLink固件由两个部分组成 4 | * 以xxx_bl结尾的.bin文件(Bootloader) 5 | * 以xxx_if结尾的.bin文件(应用程序) 6 | 7 | NXP的LPC11U35是自带Bootloader,原装的LPC11U35芯片首次上电时就会自动进入Bootloader,虚拟出一个U盘设备,然后将以应用程序拖进去即可完成烧录,之后就会自动运行应用程序 8 | 9 | ### 技新DAPLink固件更新 10 | 11 | 1. 按住K1(或短接nRST和GND)插入电脑就会识别出一个`CRP DISABLD`U盘设备,里面有一个`firmware.bin`文件,将其删除 12 | 2. 把第二章的编译产生的DAPLink固件**`lpc11u35_lpc812xpresso_if_crc.bin`**(固件位于DAPLink\projectfiles\uvision\lpc11u35_lpc812xpresso_if\build目录下)拖(复制)到U盘中 13 | 3. 将DAPLink重新插拔一次(不需要按住K1或短接nRST和GND),就会看到一个`DAPLINK`U盘设备,固件更新完毕 14 | 15 | 固件更新后,`DAPLINK`内有DETALLS.TXT和MBED.HTM两个文件,MBED.HTM是一个网页,DETALLS.TXT是该DAPLink固件的相关信息: 16 | ``` 17 | # DAPLink Firmware - see https://mbed.com/daplink 18 | Unique ID: 105000001781cdaa00000000000000000000000097969902 19 | HIC ID: 97969902 20 | Auto Reset: 0 21 | Automation allowed: 0 22 | Overflow detection: 0 23 | Daplink Mode: Interface 24 | Interface Version: 0247 25 | Git SHA: 7574bed494828d1da9a170d4f2727bba28362eaf 26 | Local Mods: 0 27 | USB Interfaces: MSD, CDC, HID, WebUSB 28 | Interface CRC: 0x7ba4edb8 29 | Remount count: 0 30 | URL: https://mbed.org/device/?code=105000001781cdaa00000000000000000000000097969902?version=0247?target_id=@T 31 | ``` 32 | 33 | DAPLink插入电脑后会识别出如下设备(如果有部分设备无法识别请检查系统驱动是否有问题): 34 | * MSD--USB大容量存储设备(拖拽式下载) 35 | * CDC--mbed Serial Port(虚拟串口) 36 | * HID--符合HID标准的供应商定义设备/USB输入设备(CMSIS-DAP接口) 37 | * WebUSB:CMSIS-DAP或USB_DFU 38 | *注:W7和W8系统的CDC驱动需要手动安装,:point_right: [驱动地址](http://os.mbed.com/media/downloads/drivers/mbedWinSerial_16466.exe)* 39 | 40 | 41 | ### 其他DAPLink固件更新 42 | 43 | LPC11U35本身自带Bootloader,所以只需要Bootloader的MMSD接口把固件烧录进去即可,对于本身没有自带Bootloader功能的,需要先往里先烧录Bootloader。DAPLink的固件源码编译生成的工程,对于LPC11U35之外没有Bootloader功能的DAPLink硬件提供了Bootloader固件,如DAPLink\projectfiles\uvision目录下的`k20dx_bl`工程就是`k20dx`的Bootloader 44 | 45 | 46 | ## DAPLink在ARM-MDK中的使用 47 | 48 | DAPLink的CMSIS-DAP接口是用于ARM Cortex内核MCU调试仿真的,只要IDE支持CMSIS-DAP协议接口即可使用DAPLink,这里以ARM-MDK为例,其他的IDE也类似使用,调试仿真使用的是DAPLink的CMSIS-DAP接口功能 49 | 50 | 1. DAPLink作为仿真器连接目标设备,如STM32F103C8T6最小系统板 51 | 2. 打开STM32F103C8T6的ARM-MDK例程 52 | 3. 打开Options for Target选项,在Debug栏下的Use选项选择CMSIS-DAP Debugger 53 | 4. 点击Settings,Debug栏设置如下图,点击OK完成配置,之后即可编译下载/调试 54 | 55 | ![技新DAPLink](/Images/DAPLink-MDK1.png) 56 | 57 | 58 | ## DAPLink的MSD命令使用 59 | 60 | DAPLink允许通过MSD接口来给它一些简单的命令。复制一个指定命名的文件通过MSD接口到DAPLink,可以使DAPLink执行一个动作或一个永久有效配置,文件的内容可以被忽略(可以发送一个空文件) 61 | 62 | MSD的命令只有在下面状态下才有效 63 | * 插入DAPLink,再按住K1,然后把相应的.act或.cfg文件复制到MSD接口 64 | * 在打automation-allowed模式下,把相应的.act或.cfg文件复制到MSD接口 65 | 66 | MSD命令有两种 67 | * .act文件,触发DAPLink一个Action(动作) 68 | * .cfg文件,配置DAPLink一个Configuration(设置) 69 | 70 | 71 | ### Action命令 72 | 73 | `start_bl.act` 该文件将强制进入Bootloader,相当于拔下DAPLink,按住K1再插上。如果DAPlink已经处于Bootloader,则该命令无效 74 | 75 | `start_if.act` 该文件将强制DAPLink重新进入DAPLink接口模式。它相当于拔下USB电缆,并将其插入。如果已经处于DAPLink接口模式,则此命令无效 76 | 77 | `assert.act` 该文件可以用来测试DAPLink的assert实用程序。当您将该文件复制到DAPLink MSD驱动器时,DAPLink将生成对util_assert()方法的调用。assert调用导致DAPLink MSD驱动器重新加载一个附加文件ASSERT.TXT,出现在驱动器的根部。这个文件详细说明了断言失败发生的地方(源文件,行号) 78 | 79 | `refresh.act` 该文件强制重新加载DAPLink MSD驱动器 80 | 81 | `erase.act` 该文件触发对目标FLASH的擦除 82 | 83 | 84 | ### Configuration命令 85 | 86 | `auto_rst.cfg` 该文件用于配置自动复位模式,默认情况下自动复位是禁止的 87 | 88 | `hard_rst.cfg` 该文件用于关闭自动复位模式,默认情况下自动复位是禁止的 89 | 90 | `auto_on.cfg` 该文件用于打开automation-allowed模式,再该模式下可以出发DAPLink的MSD命令,而不需要按住K1案件。此外,Bootloader更新只允许再该模式下运行 91 | 92 | `auto_off.cfg` 该文件用于关闭automation-allowed模式,automation-allowed模式默认是关闭的 93 | 94 | `ovfl_on.cfg` 该文件用于打开串口溢出报告。再串口通讯过程中,如果主机PC没有以足够快的速度从DAPLink读取数据,并且发生溢出,则文本将出现在串行数据中。串行溢出报告默认关闭 95 | 96 | `ovfl_off.cfg` 该文件用于关闭串口溢出报告 97 | 98 | 99 | ### MSD命令使用 100 | 101 | 1. 使能automation-allowed模式。新建文本文档并重命名为`auto_on.cfg`,插入DAPLink并按按K1,然后把auto_on.cfg文件拷贝进DAPLink的MSD接口(虚拟U盘),这时DAPLink的MSD会重启,在根目录的DETAILS.TXT文件中`Automation allowed: 1; Remount count: 1` 102 | ``` 103 | # DAPLink Firmware - see https://mbed.com/daplink 104 | Unique ID: 105000001781cdaa00000000000000000000000097969902 105 | HIC ID: 97969902 106 | Auto Reset: 0 107 | Automation allowed: 1 108 | Overflow detection: 0 109 | Daplink Mode: Interface 110 | Interface Version: 0247 111 | Git SHA: 7574bed494828d1da9a170d4f2727bba28362eaf 112 | Local Mods: 0 113 | USB Interfaces: MSD, CDC, HID, WebUSB 114 | Interface CRC: 0x7ba4edb8 115 | Remount count: 1 116 | URL: https://mbed.org/device/?code=105000001781cdaa00000000000000000000000097969902?version=0247?target_id=@T 117 | ``` 118 | 119 | 2. 触发一个Action。新建文本文档并重命名为`refresh.act`,将该文档拷贝进DAPLink的MSD接口(虚拟U盘),这时DAPLink的MSD会重启,在根目录的DETAILS.TXT文件中`Automation allowed: 1; Remount count: 2` 120 | ``` 121 | # DAPLink Firmware - see https://mbed.com/daplink 122 | Unique ID: 105000001781cdaa00000000000000000000000097969902 123 | HIC ID: 97969902 124 | Auto Reset: 0 125 | Automation allowed: 1 126 | Overflow detection: 0 127 | Daplink Mode: Interface 128 | Interface Version: 0247 129 | Git SHA: 7574bed494828d1da9a170d4f2727bba28362eaf 130 | Local Mods: 0 131 | USB Interfaces: MSD, CDC, HID, WebUSB 132 | Interface CRC: 0x7ba4edb8 133 | Remount count: 2 134 | URL: https://mbed.org/device/?code=105000001781cdaa00000000000000000000000097969902?version=0247?target_id=@T 135 | ``` 136 | 137 | 3. 配置一个Configuration。新建文本文档并重命名为`refresh.act`,将该文档拷贝进DAPLink的MSD接口(虚拟U盘),这时DAPLink的MSD会重启,在根目录的DETAILS.TXT文件中`Automation allowed: 1; Overflow detection: 1; Remount count: 3` 138 | ``` 139 | # DAPLink Firmware - see https://mbed.com/daplink 140 | Unique ID: 105000001781cdaa00000000000000000000000097969902 141 | HIC ID: 97969902 142 | Auto Reset: 0 143 | Automation allowed: 1 144 | Overflow detection: 1 145 | Daplink Mode: Interface 146 | Interface Version: 0247 147 | Git SHA: 7574bed494828d1da9a170d4f2727bba28362eaf 148 | Local Mods: 0 149 | USB Interfaces: MSD, CDC, HID, WebUSB 150 | Interface CRC: 0x7ba4edb8 151 | Remount count: 3 152 | URL: https://mbed.org/device/?code=105000001781cdaa00000000000000000000000097969902?version=0247?target_id=@T 153 | ``` 154 | *注:其他MSD命令使用也如上配置* 155 | 156 | 157 | ## DAPLink其他功能介绍 158 | 159 | ### CDC虚拟串口 160 | 161 | DAPLink带有虚拟串口功能,可用于与目标设备进行串口通讯,使用方法与其他UDB转TTL的模块一样,支持的比特率有: 162 | ``` 163 | 9600 164 | 14400 165 | 19200 166 | 28800 167 | 38400 168 | 56000 169 | 57600 170 | 115200 171 | ``` 172 | *注:大多数DAPLink还支持这里列出来之外的串口通讯波特率* 173 | 174 | 175 | ### MSC拖拽式下载功能 176 | 177 | DAPLink带有拖拽式下载功能,但是该功能通常只针对独立的目标设备,如固件`lpc11u35_lpc812xpresso_if_crc.bin`的拖拽式下载是针对lpc812xpresso目标的,如果想支持其他的目标就需要对DAPLink固件进行修改移植, :point_right: [参考文档](https://github.com/ARMmbed/DAPLink/blob/master/docs/PORT_BOARD.md) 178 | 179 | 180 | ### 其他功能 181 | 182 | DAPLink还提供了非常多的功能和应用,如自动化测试、添加一个新板支持、添加一个新设备、移植到新的硬件电路等,其中的操作都有独立的文档讲解,本章介绍的固件更新和DAPLink的MSD命令使用也只是其中一部分功能,具体可参考 :point_right: [DAPLink官方文档](https://github.com/ARMmbed/DAPLink/tree/master/docs) 183 | 184 | DAPLink的移植部分是一个比较重要也是比较复杂的功能,本小册是属于基础篇,所以就不介绍DAPLink一直部分内容,如果对DAPLink一直感兴趣的可以参考官方的文档说明,或者在后面会单独写一份关于DAPLInk移植的小册 185 | 186 | 187 | ## 本章小结 188 | 189 | 本章的内容介绍DAPLink如何更新固件、DAPLink在ARM-MDK上的使用、DAPLink的MSD命令使用等。通过本章内容可以了解到DAPLink是一个非常强大的开源仿真器,想详细了解DAPLink建议阅读官方DAPLink相关的文档 190 | 191 | 小册的内容到此也就结束了,小册比较详细地介绍了DAPLink的软硬件,同时也介绍DAPLink使用,用户可根据本小册的内容自己DIY一个DAPLink,也可以根据小册提供的连接购买一个DAPLink。说起DAPLink也是一种缘分,当初公司项目需求一个Cortex -M的仿真器,但是市场上上常用的J-LINK个ST-LINK都是有版权的,并且价格也是非常昂贵。后来遇见DAPLink(当时还叫CMSIS-DAP),然后再网上搜各种资料,资料比较少(可能因为CMSIS-DAP是国外开源项目,在国内很少人研究),但是也有不少牛人实现CMSIS-DAP的移植,其中网友*X839*在STM32上移植成功了,这也是在网上流行的CMSIS-DAP版本。后来官方把CMSIS-DAP改名为DAPLink,并丰富了很多的资料,使DAPLink逐渐完善起来,支持的设备越来越多,兼容的硬件平台也越来越多,同时提供各种参考资料 192 | 193 | 194 | --------------------------------------------------------------------------------