高速USB 2.0的CMSIS-DAP调试器:CMSIS-DAP正确打开方式(3月18日更新速度和稳定性)

本文介绍了如何使用CMSIS-DAP 1.10在STM32F405上构建高速USB 2.0调试器。通过详细步骤,包括硬件配置、软件设置、MDK5工程创建、CMSIS-DAP源码添加和修改,以及JTAG/SWD引脚操作。最终实现了一个简单的DAPLink调试器,能够连接并调试目标STM32F1设备。
摘要由CSDN通过智能技术生成

3月18日注:修改USB最大包长度到1024(HS支持),USB初始化前增加等待100ms。

CMSIS-DAP Debugger 是 ARM 发布的面向 Cortex 系列 MCU 的开源(Apache 2.0协议)JTAG 与 SWD 调试器,现已被 Keil MDK 和 IAR EWARM 等 IDE 支持,用于包括主流的 STM32、NXP LPC、Freescale 等在内的多种 MCU 的程序下载与调试。
这里介绍一下 CMSIS-DAP 1.10 在 STM32F 上实现的高速 USB 2.0 调试器。

实际上这货还可以在 ARM DS-5 上调试 Cortex-A,不过这个超出本文讨论范围。

Keil MDK 工程和源代码(不包括 CMSIS 库已有部分)已上传至
https://code.csdn.net/K_O_Carnivist/cmsis_dap_stm32_hs/

我的试验平台

初版硬件原理图

用了 STM32F405RGT6。理论上只要支持 MDK Middleware 的、带 USB 的单片机都可以,包括更便宜的 STM32F205。
原理图省略了一些退耦电容。

初版原理图

STM32 与 USB3300 常规连接,公用一个 24MHz 晶振。几个 74LV1T125 做电平转换,其中 SWDIO/TMS 信号用 3 个引脚分别控制输入、输出和方向。

软件

Keil MDK 5.17,需要 Pro License;

安装了如下 Software Pack:
  Keil::STM32F4xx_DFP 2.6.0
  Keil::MDK-Middleware 7.0.0
  Keil::ARM_Compiler
  ARM::CMSIS 4.5.0

MDK 5 建立一个 USB 工程

这一步主要参考 http://www.keil.com/appnotes/files/apnt_268.pdf 及 USB Middleware 帮助文档。

新建工程

菜单 Project - New μVision Project。

选个工程存放的位置。

选设备的地方找到 STM32F405RGTx。

Run-Time Environment 选中这几个:
  CMSIS - CORE
  CMSIS - RTOS (API) - Keil RTX
  CMSIS Driver - USB Device (API) - High-speed
  Device - Startup
  Device - STM32Cube Framework (API) - Classic
  Device - STM32Cube HAL - Common
  Device - STM32Cube HAL - Cortex
  Device - STM32Cube HAL - GPIO
  Device - STM32Cube HAL - PWR
  Device - STM32Cube HAL - RCC
  USB - CORE
  USB - Device = 1
  USB - Device - HID = 1
一个简便方法是先把 USB - Device - HID 设成 1,然后按照左下角的提示把依赖的项目选上就好。

新建好的工程有这些内容:

Project

配置工程

设置 HSE_VALUE

在 Target 设置里面设置正确的晶振频率。

HSE_VALUE

配置 CMSIS-Driver

这一步配置 USB 相关的硬件初始化。

打开 RTE_Device.h 并点击编辑区域下方进入 Configuration Wizard 模式,选中 USB High-speed,并设置 USB 相关的引脚。

RTE_Device.h

配置 USB

这一步配置 USB 相关的软件初始化。

打开 USBD_Config_0.c 并进入 Configuration Wizard 模式,修改 Device Settings 和 String Settings。主要是把 Max Endpoint 0 Packet Size 改成 64 Bytes。

USBD_Config_0.c

打开 USBD_Config_HID_0.h 并进入 Configuration Wizard 模式,按下图修改。

USBD_Config_HID_0.h

配置 CMSIS-RTOS

这一步为 USB 配置 RTOS 的资源。

打开 startup_stm32f405xx.s 并进入 Configuration Wizard,把 Stack Size 改成 0x600。

startup.s

打开 RTX_Conf_CM.c 并进入 Configuration Wizard:
  将 RTOS Kernel Timer input clock frequency [Hz] 改为 168000000,
  将 Number of concurrent running threads 改为 4,
  将 Number of threads with user-p

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值