ARM调试接口SWD(Serial Wire Debug) 协议分析
本帖最后由 kingsabbit 于 2012-9-23 01:58 编辑曾发贴分析孕龙的JTAG解码插件存在BUG,误导走了弯路,今天再来分析一下ARM芯片调试接口JTAG外的一个接线比较简单的接口SWD(Serial Wire Debug) 接口的协议格式
ARM官方的文献资料:
关于SWD时序的说明:
协议包中的校验Parity的说明:
ACK握手包不需要校验的说明:
SWD协议中信号说明
写操作成功时序
读操作成功
读写过程中等待响应
读写过程中出现故障
协议错误时序
连接线复位时序
OK握手说明
WAIT等待请求
FAULT请求
Sticky overrun behavior
再来分析从ULINK获取得到的结果
由JTAG切换到SWD协议通信需要发送如下格式的数据包
读ID的过程
官方资料提到的读ID的文献
attach://53544.pdf
拆解该数据包时序如下:
封包请求(10100101) host to target
ACK请求(100) target to host
数据传输读时序 target to host
32位ID: 2BA01477
最后别忘了校验包
读数据传输中的校验位
同样从swd协协议切换到JTAG通信需要发送如下格式的数据包
最后,需要说明一点:
1.插图是为了分析方便,所以用了SPI,实际中由于要在SWDIO中实现双向的数据传输的,所以不是简单的SPI读写就可完成,只是为了分析方面看到数据,所以特意用了SPI解释8字节的数据
2.写过程中SWDIO是输出的,读过程中SWDIO是输入的,ACK回应期间SWDIO也是输入的
3.上述插图是为了分析方便特意拉开了数据包的距离,如8位+3位+32位+1位校验位,但截取ZLG的CK100读LPC1114 ID的时候,整过数据传输过种是没有中间分隔的,即一次性完成44位的传输操作
截图加入网页比较小,再来一份打印后的PDF方便阅读
谢谢,这是 我一直想干 却 没干的事情。 很好,留名占位 会英文的好处呀。。 果断收藏,有空的时候仔细瞅瞅 好东西啊,可以做手持下载器了 SWD用来调试,
确实是方便很多。 {:lol:},可以字节DIY调试器了 DIY调试器,MARK 手册下不了,怎么回事》》? 可否把上面的三份资料发到下面邮箱:yannami@126.com 看到SWD(Serial Wire Debug) 原以为是一根线,实际使用起来还是要三根线 mark......
顶一个...{:lol:} 刚好想研究这个方面的东西,收了,谢谢~ 好,谢谢 好, 记录一下. 赞美楼主的无私{:biggrin:} 顶! 好帖子,顶 我也来分享一下笔记
3.如何进入SWD状态
Before using the SW-DP an initialization sequence must be performed to establish communication and
bring the SW-DP to a known state.
1. Perform a line resest
2. Send the JTAG-to-SWD switching sequence
3. Perform a line reset
4. Read the IDCODE register mark!多谢分享,学习ing mark,多谢分享。 我遇到一个疑问, 在访问芯片内部寄存器时候, AP寄存器组中已经有了一个TAR寄存器用于存放目标寄存器地址, 有个DRW用来存放将要写入或读出寄存器的值, 那么为什么还需要用BD0~BD3寄存器? 正需要,谢谢楼主 谢谢 楼主 有没有做好的手持脱机下载器呀?我需要二三十个! mark 不错。下载来慢慢学习。 好东西,下来好好研究一下!{:victory:} mark....... 好东西,下来看看 SWD协议,谢谢分享 SWD协议,谢谢分享 一直用JTAG调试模式的路过看看。 Mark之 太棒了赞一个 感谢分享! 感谢感谢 是挺难的呀 顶顶。。 很好的资料,感谢分享 谢谢,真的不错,很需要!{:handshake:} ARM调试接口SWD协议分析,ARM官方文档 备用 有时间研究一下 很有必要研究一下。 {:lol:}自已看英文文档看不是太明白现在清晰了很多 好.......... 没有过程和代码呢? 占楼收藏,英文资料值得啃。 收藏,谢谢分享 MARK!感谢分享 SWD协议,谢谢分享!!! 封包请求,ACK 请求, 数据包格式截图很好。 要是能够在详细解释下如何debug的就更好了 厉害了,学习学习! 厉害了,谢谢分享! 谢谢分享 最近要搞,找到老贴,还是很有用 为什么arm的jtag口都用20脚的牛角,是电流太大,需要多点的电源脚吗,10脚不行吗,上次我把20脚转接成10脚牛角也可以用 也想好好看看!
页:
[1]