浏览完本文后,我想知道SWD调试比JTAG调试有什么好处?
我知道SWD使用较少的电线/引脚,占用较小的空间等。但是,如何在硬件编程器/调试器设备的性能,功能和成本方面发挥作用呢?像Eclipse这样的IDE仍然可以断点/暂停代码并逐步执行代码吗?
可以像我相信可以在JTAG中那样使用SWD接口对ARM芯片进行编程吗?
浏览完本文后,我想知道SWD调试比JTAG调试有什么好处?
我知道SWD使用较少的电线/引脚,占用较小的空间等。但是,如何在硬件编程器/调试器设备的性能,功能和成本方面发挥作用呢?像Eclipse这样的IDE仍然可以断点/暂停代码并逐步执行代码吗?
可以像我相信可以在JTAG中那样使用SWD接口对ARM芯片进行编程吗?
Answers:
SWD应该能够对ARM芯片组进行编程,此外还可以调试和添加断点。SWD的另一个好处是,您可以将串行线查看器用于您的printf语句以进行调试。我只将它与Keil编译器一起使用。
截至2017年,JTAG已得到非ARM微处理器,编程器和生产线的广泛支持。可以以FT232H [*]分支和其他此类编程设备的形式廉价地购买JTAG 编程器。但是,SWD在调试ARM芯片的速度和其他方面具有明显的优势。
由于测试中的JTAG和调试中的SWD的用途不同,ARM通过其CoreSight技术提供了SWJ-DP(串行线/ jtag调试端口),该技术将SWD引脚映射到JTAG的时钟和复位线上。因此,SWJ-DP允许在相同的物理连接上使用两种协议,尽管不必同时使用同一协议或使用相同的编程器,因为JTAG和SWD必须在时间上进行多路复用。
旧问题,但没有一个答案解决性能比较问题。尽管SWD和JTAG之间的功能集(使用CoreSight DAP时)足够接近,但是SWD序列比等效的JTAG序列短大约10%。
在大多数情况下(尤其是在带宽最重要的情况下,流式读取或写入)不会损失数据带宽。