在調試單片機程序時,串口打印是一種常用的方式。有時候,硬件上沒有預留串口時,就需要采用其它方式進行打印調試。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后,然后點擊運行按鈕,程序開始運行后即可看到相應變量的波形。也可以進行暫停、停止、放大縮小波形的操作。
該軟件還有導入導出數據的功能,感興趣的朋友也可以自己探索。