其中SWD只需要两根线(SWCLK和 SWDIO),在PCB布局有限、引脚资源紧张的情况下,SWD算是一种不错的选择。 SWD简介 SWD:Serial Wire Debug,代表串行线调试,是ARM设计的协议,用于对其微控制器进行编程和调试。 市面上支持SWD调试接口的下载器很多,比如:ST-Link、 J-Link、 e-Link、 GD-Link等市面上绝大部分用于Cortex-M内核处理器的下载器都支持。 对于SWDIO,是双向(输入输出)数据引脚,必须在电路板上对线路进行上拉(ARM 建议采用 100 K)。 每次在协议中更改 SWDIO 的方向时,都会插入转换时间,此时线路即不受主机驱动也不受目标驱动。默认情况下,此转换时间为一位时间,但可以通过配置 SWCLK 频率来调整。 调试接口 常见的Cortex-M内核处理器都集成了SWD和JTAG 调试端口,在 SWJ-DP 中, SW-DP 的 2 个 JTAG 引脚与 JTAG-DP 的 5 个 JTAG 引脚中的部分引脚复用。 JTAG与SWD的切换机制: 1. 输出超过 50 个 TCK 周期的 TMS (SWDIO) = 1 信号 2. 输出 16 个 TMS (SWDIO) 信号 0111100111100111 (MSB) 3. 输出超过 50 个 TCK 周期的 TMS (SWDIO) = 1 信号 SW 协议序列
SW-DP 状态 SW-DP 的状态机有一个用于标识 SW-DP 的内部 ID 代码,其中主要包含的状态:复位、空闲状态、 ID 代码等。
SW-DP 寄存器 SWD类似普通外设,也是有一种寄存器,开发者进行的编程(读写)操作,其实就是操作对应的寄存器。 |
|
来自: 新用户0118F7lQ > 《文件夹1》