关于调试/仿真器的JTAG和SWD的使用==总结

嵌入式行业,涉及到系统设计,难免要考虑这些接口的设计,

当前手上的一个项目,为了减小体积、节省资源,使用了stm32 swd接口,下面及此简要说明下常用的一些调试接口,,,

常用调试器包括UNLINK、JLINK等,这两款支持 JTAG、SWD两种调试接口,

JTAG是一种国际标准测试协议,主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA、arm、PowerPC器件等。标准的JTAG接口是4线(强制要求):TCK、TMS、TDI、TDO。当然,目测SWD与JTAG的地位差不了太多,,

JTAG与SWD标准的接口排列:

关于调试/仿真器的JTAG和SWD的使用==总结_第1张图片

实际使用到的引脚:

实际使用中(针对JLINK、UNLINK2),

JTAG需要的接线:

  • 强制:TDI、TMS、TCLK、TDO;
  • 看实际情况添加:VCC、GND、TRST、RESET;
即一般的系统设计会选择这样子的8线制;
关于JTAG的详细理论基础,见: 深入理解jtag接口协议

SWD需要的接线:

  • 强制:SWDIO、SWCLK
  • 看实际情况添加:VCC、GND、RESET;
这部分是针对UNLINK仿真器的实测情况,比较稳定的一种接口;

实测部分数据:

以下针对SWD:
GND可以去掉===目前没有看到什么不正常的情况发生;
RESET可以去掉=== 但会导致系统不能够热启动,需要在下载程序之后进行冷启动,系统才能够正常的跑动。同时编译器也需要进行相关的设置(SYSRESTREQ或者VECTRESET),如下图:
关于调试/仿真器的JTAG和SWD的使用==总结_第2张图片

就SWD接口,于MDK环境下的 可能设置包括:根据自己的实际情况,考虑勾选,,,
关于调试/仿真器的JTAG和SWD的使用==总结_第3张图片



常用的调试工具:

关于调试/仿真器的JTAG和SWD的使用==总结_第4张图片

目前,我这边使用过的调试器是包括LINK、UNLINK、PEMicro,其中JLINK绝对的通用,,下边简要说下另外的两款:
UNLINK==MDK标配
PEMicro==freescale 飞思卡尔的,适用OSBDM接口,,,



你可能感兴趣的:(cortex-M3)