CMSIS-DAP 提供了一种通过 USB 访问 ARM Cortex 微控制器的 Coresight 调试访问端口 (DAP) 的标准化方法。
CMSIS-DAP 通常作为板载接口芯片实现,提供从开发板到一侧在主机上运行的调试器的直接 USB 连接,并通过 JTAG(联合测试行动组)或 SWD(串行线调试)到目标设备以访问另一台上的 Coresight DAP。

CMSIS-DAP版本

CMSIS-DAP 固件版本可以配置为两种不同的 USB 接口模式:

  • 版本 1 配置使用 USB HID 作为主机 PC 的接口。
  • 版本 2 配置使用 WinUSB 作为主机 PC 的接口,并提供高速 SWO 跟踪流。

CMSIS-DAP 优势

目前成熟的ARM调试器,主要有Jlink、Ulink、ST-Link、Nu-Link等,这些都是需要配合特定的驱动才能使用。而开源的CMSIS-DAP的推出,无疑加速了Link的统一。
CMSIS-DAP主要有以下优势:

  1. 开源,硬件、软件灵活定制
  2. 可拓展厂商自定义指令集
  3. 为调试器提供标准化接口。提供与许多标准调试器的接口。
  4. 访问所有 Cortex处理器架构 (Cortex-A/R/M) 的 CoreSight 寄存器。
  5. 通过 5 针 JTAG 或 2 针串行线调试 (SWD)连接。
  6. 支持多核调试。
  7. 支持 Cortex-M 设备的串行线输出(CMSIS-DAP 1.1.0 版中的新增功能)。
  8. 易于部署到基于Cortex-M 微控制器的调试单元。
  9. 调试单元可以集成在评估板上。
  10. USB 使用 HID(人机接口设备)驱动程序类,避免在主机 PC上安装驱动程序。
  11. 支持对时间要求严格的 JTAG 或 SWD 命令执行(CMSIS-DAP 1.10 版中的新功能)。
  12. 支持使用调试单元进行时间测量的测试域计时器(CMSIS-DAP 1.2.0 版中的新功能)
  13. 支持 UART 通信端口,可路由到 USB COM 端口(可选)或本地 CMSIS-DAP 命令(CMSIS-DAP 版本 2.1.0 中的新功能)。

CMSIS-DAP实现关键

  1. stm32f103rbt6,自带全速USB接口,用cubeMX生成自定义HID代码框架,并增加透传报告描述符
  2. USB设备产品描述字符和配置描述字符串中包含"CMSIS-DAP"(CMSIS-DAP识别的关键)
  3. 移植DAP协议框架(KEIL安装目录中D:\Programs\Keil_v5\ARM\Packs\ARM\CMSIS\5.8.0\CMSIS\DAP\Firmware),将Source和Include文件夹加入工程
  4. 将Config下面的DAP_config.h夹入工程
  5. 在DAP_config.h定义对应SWD接口(SWCK、SWDIO、nRESET、LED等)状态读取与操作
  6. 在usbd_custom_hid_if.c中收取HID数据,并调用DAP处理接口DAP_ExecuteCommand,同时回复PC
  7. 在原来代码基础上,再加入CDC功能,在usbd_cdc_if.c中完善串口收发接口

KEIL中识别效果


STM32F103实现CMSIS-DAP相关推荐

  1. STM32开发笔记之——CMSIS DAP

    都说开发stm32都是使用kail iar+jatg/swd的方式,然而arm公司已经开发出了CMSIS DAP的开源下载工具,全称是CoreSight Debug Access Port,网络上有大 ...

  2. ARM CMSIS DAP源码分析

    转ARM CMSIS DAP源码分析(一)_穿透灵魂的鼓点的博客-CSDN博客 结合ARM文档ADIv5,分析一下ARM提供的CMSIS DAP的开源代码,写点个人心得. 1.USB的整个传输有2个全 ...

  3. iar使用秉火DAP仿真时出现错误 Download error at 0x08000000: downloading into non-writable memory.

    在学习野火stm32f103开发板时,iar使用秉火DAP仿真时出现错误 Download error at 0x08000000: downloading into non-writable mem ...

  4. 逐飞K66核心板+逐飞DAP下载器调试方式及接线(SWD)

    以逐飞K66例程的LED Blink为例,环境是IAR.接线方式为SWD. 和逐飞DAP教程一样,看到侧边窗口,在工程名上右键,选择Options,在左侧菜单选中Debugger,右边Driver选择 ...

  5. 合宙AIR32F103CBT6刷回CMSIS-DAP固件和DAP升级固件以及刷ST-LINK V2-1固件方法

    合宙AIR32F103CBT6刷回CMSIS DAP固件和DAP升级固件以及刷ST-LINK V2-1固件方法

  6. 正点原子STM32(基于HAL库)0

    目录 开发环境搭建与使用 常用开发工具简介 MDK 安装 仿真器驱动安装 CH340 USB 虚拟串口驱动安装 使用MDK5 编译例程 使用串口下载程序 使用DAP 下载与调试程序 使用DAP 下载程 ...

  7. USB转JTAG小板 (一)

    为什么有 usb 转 jtag 小板因为 arm的 DP 有 jtag-DP , riscv 有 jtag-dtm , 而上位机 有 USB , 所以 要 额外的 小板 用于 转换 usb 和 jta ...

  8. 智能车竞赛技术报告 | 智能车视觉 -重庆大学 - 风林火山

    简 介: 本文主要介绍了基于RT Thread操作系统的智能视觉组四轮循迹智能小车系统的原理.软硬件设计以及小车制作过程,对小车的系统介绍包括车模机械结构的设计.模块电路的设计.传感器信号的处理.控制 ...

  9. RT-Thread优化智能车设计

    学 校:重庆大学 队伍名称:风林火山 参赛队员:谢文祥.梁华林.陈俊霖 带队老师:李敏 简 介: 本文主要介绍了基于RT Thread操作系统的智能视觉组四轮循迹智能小车系统的原理.软硬件设计以及小车 ...

  10. CMSIS-DAP和J-Link、ST-Link是什么关系?

    作者:strongerHuang 公众号:strongerHuang 学习过STM32或Cortex-M处理器的读者对J-Link.ST-Link应该不陌生,都知道它们是下载调试器. 除了J-Link ...

最新文章

  1. python 开发板加密_Bugku 加密 python writeup
  2. win2003禁止web等目录执行exe,bat,com的方法
  3. Mock工具之Mockito实战
  4. 转-项目管理心得:一个项目经理的个人体会、经验总结
  5. stm32 invalid rom table(转载)
  6. Prufer序列相关
  7. C++ cin cout
  8. 云图说丨不同区块链之间如何跨链交互?
  9. Jmeter学习笔记4-集合点
  10. 红外遥控器-VS1838B/HS0038红外接收方案(包含原理图+PCB+BOM表+程序)
  11. Linux系统怎么复制文件夹下的全部文件到另外文件夹?...
  12. 本科生怎样发表自己的论文
  13. 数字经济进入2.0时代 浙里有为共赢新“基”遇
  14. 今日“春分”,我們來場春天的“飛花令”吧
  15. u盘里删除的文件可以恢复吗?分享解决方法
  16. (C语言)对称数判断
  17. 写出宏定义 输出一年有多少秒
  18. Flutter 正式推出 Windows 平台支持
  19. CF1027B Numbers on the Chessboard (#数学)
  20. 参与社团活动的意义_开展小学生社团活动的重要意义

热门文章

  1. 2021-07-21淘宝网第二次尝试
  2. 深入Guerrilla Games解密次世代开山大作《杀戮地带暗影坠落》(The technology of Killzone Shadow Fall)
  3. 数据抽取常见的几种模式
  4. SpacePack 运维工具之 Auto fdisk
  5. java+微博上传图片_GitHub - lkshuihua/webpic: 轻量级Java 上传图片 到微博图床小工具...
  6. .NET报表控件ActiveReports实战应用——入门指南
  7. 关于DllRegisterServer的调用失败的问题解决办法 错误代码0x80040201
  8. 中国象棋棋谱大全之一
  9. 红帽linux中文语言包,英文 RedHat AS5 中文语言包安装
  10. 【博弈论】耶鲁大学公开课--博弈论Problem Set 1--Solution