四种仿真器和五种下载模式调试差异?
一、J-LINK、ST-Link、升级版DAPLink(旧版CMSIS-DAP)、ULink 仿真器区别?几种JTAG、SWD、SWIM、SWV下载模式或者调试方式差异(细看)?
总结:J-Link、ST-Link、ULink、DAPLink四种仿真器之间的区别:
1、JLink是通用型的ARM内核芯片仿真器,支持的芯片和软件开发环境多 ,IAR,Keil MDK, STM32 cudeIDE,MCUXpresso IDE(GCC+Eclipse)针对NXP芯片;支持JTAG\SWD两种模式,优先选择JLINK
2、ST-Link是针对STM8/STM32,如果你使用STM8/STM32单片机,首选ST-Link,当然用JLink下载ST系列单片机也可以;支持开发环境,IAR,keil MDK,STM32 cudeIDE,Atollic TrueStudio (ST收购了Atollic),支持JTAG/SWD/SWIM三种模式.STM32 ST-LINK Utility和STM32Cube-programmer是ST-link下载程序工具。
3、ULink属于ARM/KEIL公司(2005年ARM收购了KEIL),专注于Keil MDK平台,支持ARM7/9,Cortex-M0~M4,ULink2还支持8051系列芯片,综合性能(支持芯片种类、软件开发环境及及调试速度)均不如JLink;支持JTAG/SWD/SWV三种模式
4、DAPLink支持环境:IAR,Keil MDK,arm MBED DAPlink,支持个5针的 JTAG 或2针的串行有线调试(SWD)接口、串口功能
5、四者都支持JTAG和SWD模式;
总结:JTAG、SWD、SWIM、SWV、串口Printf调试五种下载模式的区别:
1、JTAG接线比较多,高速模式下稳定性不如SWD;
2、SWD接线少,可空出多余的GPIO,所需要的接线信号不同仿真器会有所差别(主要在VCC和RESET),DIO和CLK必接;SWD:用CLK(JTCK)和DIO(JTMS)两条线就可以进行实现SWDdebug,比J-tag还要方便。但是这种SWD只能进行一些普通的调试,如开始、单步调试、停下来查看内存,变量值等等。因为需要停下来才能看到变量值,这给调试工作带来很多的麻烦,效率也很低。
3、SWIM常见于STM8位单片机,需用4根线;JTAG\SWD一般是STM32位单片机
4、串口printf调试的办法,这个很简单很方便,但是现在却显得有点古老。缺点很明显,需要一个额外的串口外设,还需要串口转USB线,还要在PC上打开一个串口软件。
5、SWV高效:如果给SWD再加上一条线,SWO(JTDO),就可以实现一个实时的调试。
SWD调试方法+SWO线就可以实现SWV(Serial Wire Viewer)的调试方法,可以实时看到变量的变化,还可以printf(不使用串口),
SWV参考:二、STM32CubeIDE使用笔记(03):使用ST-LINK调试程序_Naisu Xu的博客-CSDN博客
三、JLink、STLink、DAPLink、CMSIS DAP使用区别?
标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
SWD接线:SWDIO-------------------------SWDIO
SWCLK-------------------------SWCLK
VCC-----------------------------VCC
GND----------------------------GND
J-Link-OB是由德国SEGGER开发的一套独立的调试下载器,通常被设计到各大公司的评估板上(“on-board”),这也是后缀为“OB”的原因
原来叫CMSIS-DAP 升级后叫DAP-Link