CMSIS_DAP函数库的介绍

可以发现DAP.c中的函数都是静态函数,只有DAP_ProcessCommand可以外部使用,具体的使用流程就是通过这个函数来调用其他函数

  • DAP_Info:用于获取DAP信息。这个函数会返回关于DAP的一些基本信息,比如版本号、支持的功能等。
  • DAP_Delay: 用于处理延迟命令。这个函数会在执行下一个命令之前等待一段时间,用于控制通信速率或执行一些时间相关的操作。
  • DAP_HostStatus: 用于处理主机状态命令。在这个函数中,它会返回主机的连接状态、目标设备状态和错误状态等信息。
  • DAP_Connect: 用于处理连接命令。这个函数会初始化DAP并连接到目标设备,它会检查目标设备是否支持CMSIS-DAP,并进行一些初始化设置。
  • DAP_Disconnect: 用于处理断开命令。这个函数会断开与目标设备的连接,并进行一些清理工作。
  • DAP_ResetTarget: 用于处理复位目标设备命令。这个函数会向目标设备发送复位信号,使其重新启动。
  • DAP_SWJ_Pins: 用于处理SWJ引脚命令。SWJ引脚(Serial Wire JTAG)通常用于与目标设备进行调试和通信。这个函数会设置SWJ引脚的状态,比如设置引脚为输入输出模式、设置引脚的电平等。
  • DAP_SWJ_Clock:这个函数用于设置SWJ引脚的时钟。它会根据指定的时钟频率计算出合适的分频比,并将分频比设置到DAP的寄存器中。
  • DAP_SWJ_Sequence: 这个函数用于执行一系列SWJ引脚命令。它会根据指定的命令序列来依次执行不同的SWJ引脚命令。
  • DAP_SWD_Configure: 这个函数用于设置SWD传输的时钟和数据线。它会根据指定的时钟频率计算出合适的分频比,并将分频比设置到DAP的寄存器中。
  • DAP_SWD_Sequence
  • DAP_SWD_Transfer: 这个函数用于处理SWD传输命令。SWD(Serial Wire Debug)是一种调试接口协议,它可以用于与目标设备进行调试和通信。这个函数会执行SWD传输操作,包括发送和接收数据。
  • DAP_JTAG_IDCode
  • DAP_TransferConfigure: DAP_TransferConfigure 函数用于配置数据传输操作的参数,包括传输延迟、重试次数和数据包大小等。
  • DAP_SWD_Transfer: 处理 SWD 接口的传输命令。根据请求数据中的指令类型,执行相应的 SWD 操作,如读写寄存器数据等,并将结果存储在响应数据中。
  • DAP_JTAG_Transfer: 处理 JTAG 接口的传输命令。根据请求数据中的指令类型,执行相应的 JTAG 操作,如选择 JTAG 链、读取 IDCODE 寄存器等,并将结果存储在响应数据中。
  • DAP_Transfer: 进行DAP数据传输,发送请求并接收相应的响应。
  • DAP_SWD_TransferBlock
  • DAP_JTAG_TransferBlock
  • DAP_TransferBlock: 进行块数据传输,发送请求并接收一定数量的数据响应。
  • DAP_SWD_WriteAbort
  • DAP_JTAG_WriteAbort
  • DAP_WriteAbort: 根据调试端口类型选择调用SWD或JTAG的DAP_SWD_WriteAbort()或DAP_JTAG_WriteAbort()函数,用于向目标设备发送中断终止命令。
  • DAP_ProcessVendorCommand: 处理DAP供应商自定义命令请求,默认函数返回无效的供应商ID。
  • DAP_ProcessCommand : 根据传入的DAP命令请求,调用不同的处理函数,如连接/断开连接目标设备、设置SWD/JTAG接口配置、读写寄存器和内存等。
  • DAP_ExecuteCommand :执行DAP命令,并返回响应结果。执行DAP命令,支持单个命令和多个命令打包执行。
  • DAP_Setup: 初始化DAP系统参数,包括设置调试端口类型、设置传输相关参数等,可以根据具体需求进行修改。
nanoDAP-wl 是实验室推出的基于cmsis-dap的无线调试器,即插即用,速度快,支持虚拟串口。无线调试器包括发射机/接收机,基于2.4G无线通信,可对10m范围内的目标进行调试下载、单步调试等操作,在某些有线仿真器不便调试的场景,如目标始终处于移动状态(飞行器、小车、机器人等),目标已经组装成产品形态,并且已安装在墙上或者高处等。此时使用无线调试器能较好的解决这些场景下调试问题,有效提高研发效率。 产品特点 使用极简,PC端无需安装额外软件,只需将发射机和接收器分别上电,等待连接成功,即可开始调试 支持SWD协议,典型的基于ARM Cortex-M系列芯片均支持SWD调试,常见的芯片如STM32系列,GD32系列,ATMEL-SAM系列,NORDIC-NRF51/52系列,NXP-LPC系列等芯片均支持SWD调试下载 支持JTAG协议,配合开源调试器OpenOCD可支持全球范围内几乎所有SoC芯片的调试,如ARM Cortex-A系列、DSP、FPGA、MIPS等,因为SWD协议只是ARM自己定义的私有协议,而JTAG则是国际IEEE 1149标准 支持虚拟串口,而且支持同时进行仿真调试和串口输出 接收机支持向目标板供电(5V、3.3V),以及从目标板取电(5V、3.3V)两种方式进行工作 支持MDK/IAR/OpenOCD,支持Windows/Linux/Mac 下进行调试开发 软件基于CMSIS-DAP实现,使用USB HID协议,无需安装驱动即可下载调试 v1.0版本硬件开源、固件开放,可供爱好者自行制作 使用场景用于调试飞行器,小车,机器人,由于调试目标为通常处于移动状态,若使用传统下载器不仅下载比较麻烦,而且无法进行单步调试。 目标板已经组装好外壳,成为产品形态,此时传统的有线方式不便调试。 产品安装在高处,如路灯、高塔等位置,此时使用有线方式不便调试。 产品链接(见附件) 说明 nanoDAP-wl v1.0 版本硬件开源,供爱好者自行制作研究。 固件针对个人开放,请大家加入QQ群 698319017 向群主索取。 更多信息 更多详情,用户手册和原理图等,请在https://github.com/wuxx/nanoDAP-wireless查看。 感兴趣的朋友请加入QQ群 698319017 研究讨论学习
### CMSIS-DAP RTT 使用方法及配置教程 #### 安装必要的工具链和支持库 为了能够顺利使用CMSIS-DAP和RTT功能,首先需要确保已经安装了相应的支持软件包。对于Python环境而言,可以通过pip来安装`pyOCD`这个用于操作基于ARM架构微控制器的命令行工具[^4]。 ```bash python -m pip install pyocd ``` 此命令会自动获取并设置好最新版本的PyOCD库文件到当前用户的环境中去。 #### 配置硬件连接 当涉及到具体设备时,比如STM32系列单片机,则可能需要用到特定型号的支持。通常情况下,官方提供的开发板都会自带兼容CMSIS-DAP协议的接口电路;而对于自制项目来说,则可以根据需求选择合适的第三方适配器产品[^3]。 #### 设置IDE集成开发环境 在大多数现代嵌入式编程平台中,如Keil MDK, IAR Embedded Workbench 或者 STM32CubeIDE等都可以很方便地通过插件形式加入对CMSIS-DAP的支持。特别是针对SEGGER公司的J-Link仿真器所特有的Real-Time Transfer (RTT) 功能,在这些IDE里往往也已经有了良好的集成效果[^1]。 #### 编写应用程序代码 为了让程序能够在运行期间向主机发送实时数据流,开发者可以在目标系统的固件工程内引入由SEGGER所提供的RTT组件,并按照文档说明完成初始化工作以及定义缓冲区大小等相关参数调整。下面给出了一段简单的C语言示范片段: ```c #include "segger_rtt.h" int main(void){ SEGGER_RTT_Init(); // 初始化RTT通道 while(1){ SEGGER_RTT_WriteString(0,"Hello from target!\r\n"); /* 主循环体 */ } } ``` 上述例子展示了如何调用API函数将字符串消息推送到PC端显示出来。值得注意的是,这里使用的索引值`0`代表默认的第一个终端实例,实际应用可根据情况增删更多实例以便区分不同类型的日志输出。 #### 运行调试过程 最后一步就是启动调试会话啦!此时只需打开之前提到过的任意一款支持CMSIS-DAP标准的IDE加载对应的工程项目,接着点击“开始调试”按钮即可让整个流程跑起来。与此同时,还可以借助额外的小工具例如Segger’s J-Link Commander来进行更深入的操作测试,包括但不限于读取寄存器状态、查看内存映射图谱等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值