在调试单片机程序时,串口打印是一种常用的方式。有时候,硬件上没有预留串口时,就需要采用其它方式进行打印调试。Jlink SEGGER RTT是一种非常好用的方式,只需要通过Jlink的SWD或者JTAG接口即可实现类似printf的功能,使用方法也很简单。首先,从Jlink官网上下载RTT代码,或者在MDK安装目录也可以找到。将这四个文件添加到自己工程中去,并且在主程序工程中包含SEGGER_RTT.h文件。使用时先初始化:SEGGER_RTT_Init();之后可以使用SEGGER_RTT_printf(0,"I = %d\r\n",i); 打印调试信息,在Jlink安装目录中打开J-Link RTT Client,就可以看到调试信息。SEGGER RTT还支持一些其它功能,比如输入检测等,感兴趣的朋友可以自己探索。J-Scope是SEGGER公司推出的另外一个调试工具软件,可以在目标MCU运行时,实时分析数据并进行图形化显示。它不需要SWO或目标上的任何额外引脚等功能,但使用可用的标准调试端口。J-Scope可以以类似示波器的方式显示多个变量的值。安装程序可以在SEGGER官网下载。使用之前,最好将Jlink升级到最新的版本。这里做一个简单的示例,首先新建一个空工程,添加一段程序,编译完成后下载到单片机并运行。while (1)
{
i += 0.01;
if(i >= 100)
{
i = 0;
}
sin_buf = sin(i);
cos_buf = cos(i);
}
J-Scope安装完成后打开软件,选择新建工程。
4)接口类型根据自己的实际情况选择SWD或者JTAG
点击OK,然后勾选自己要查看的变量:
点击OK后,然后点击运行按钮,程序开始运行后即可看到相应变量的波形。也可以进行暂停、停止、放大缩小波形的操作。
该软件还有导入导出数据的功能,感兴趣的朋友也可以自己探索。