DAP-LINK调试器资料收集

本文档介绍了SWD协议的详细内容,包括基本操作、版本、线序、协议流程等,并提供了参考资料,如SWD协议翻译、开发方案和开源代码。CMSIS-DAP是一个用于SWD和JTAG接口的Python支持包,文中也对其进行了简要说明。此外,还探讨了SWD协议中的数据传输、空闲状态、位顺序和校验等关键点,以及线序SWDIO和SWDCLK的作用。
摘要由CSDN通过智能技术生成

如有侵权,请联系博主删帖

参考资料
CMSIS-DAP下载器参考
python支持包

1.使用注意事项

2 收集的资料

3 SWD协议主要有7大点:

参考官方文档:ARM®Debug Interface Architecture Specification ADIv5.0 to ADIv5.2

  • Basic operation 通信总流程简介:通信通常分2阶段或3阶段;分别是: 一、Packet request: 外部主机向DP发送一个请求;外部主机通常是电脑,DP是jlink烧录器; 二、Ack:目标DP返回一个响应给主机; 三、Data transfer phase 数据传输过程,这个阶段只有两种情况会产生:a.读写数据的时候,b.寄存器CTRL/STAT.ORUNDETECT 位被置1的时候;
  • SWD protocol versions swd协议的简介:有两个版本,version1只是点对点的通信,version2可以1对多通信;
  • Line turnaround 即Trn信号 对应B4.1.3 line turnaround; 当数据线的数据要改变方向时的信号; 这个信号的电平是没有定义的(高低都行); 这个信号的周期由DLCR.TURAROUND决定,默认1个时钟周期
    总结:所以要产生数据线方向反转时(读写反转),要根据DLCR.TURROUND(2位)的数值,空几个周期不写或不读数据。
  • Idle cycles 空闲状态
    在完成一个传输后,主机需要插入一个空闲状态以令总线进入空闲状态;或继续发送一个开始信号,开始一个新的传输时序;
  • Bit order 所有数据通过SWD都是LSB first,即低位先传送;
  • parity 校验位,只是对传送的32位数据校验,当32位数据的位置1数量是偶数时,校验位就是1;否则是0;
  • limitations of multi-drop 介绍多点SWD系统配置和自动检测限制;

4.CMSIS_DAP版本说明

5.线序简介

  •     - SWDIO 双向DATA口,主机到目标的数据传送
  •     - SWDCLK 时钟口,主机控制
  •     - GND
  •     - RESET 非必需,通常该引脚用来复位启动单片机;但SWO协议中也有复位单片机命令,所以该引脚不用也可以。  两种复位效果暂时不清楚,但根据目前的经验SWO协议的复位较好用。

6. SWD协议流程

  • 读命令为数据头+Trn+ACK+RDATA+Parity构成,但实际操作发现Trn这位是忽略掉的(所以不知道对此Trn的理解是否有误),及发送完数据头后立即读入ACK,判断Target是否正确响应。
  • 写命令为数据头+Trn+ACK+Trn+WDATA+Parity,在这不同的是,在写命令时必须要考虑2个Trn的位置。
  • 根据协议,在连接Target时先要进行LineReset。即主机连续送出至少50个“1”,使得Target进行Line Reset,至少插入2个Idle,然后可以读取目标板的IDR,判断Target的类型。
  • 以上内容参考:ARM调试原理【调试接口框图】【SWD时序】【SWD主机】_城东的博客-CSDN博客_arm debug interface

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值