STM32中另一種打印調試的方法


一、前言

在我們的嵌入式開發中,常常把printf重定向到MCU的串口外設,再配合上位機界面軟件,通過打印調試信息的方式來調試我們的嵌入式軟件。

此處,我們介紹另一種打印調試的方法——SEGGER 的RTT 。RTT全稱是Real Time Transmit(實時傳輸),是Segger公司推出的,是配合J-link使用的一種調試手段。其框圖如下:

STM32中另一種打印調試的方法

可見,我們的MCU通過J-Link,憑藉RTT就可往電腦打印調試信息,電腦端這邊用的是J-LINK 的小軟件 RTT Viewer (不能是別的軟件哦)。這樣,我們就可以把MCU的串口資源釋放出來了,特別對於一些串口資源不那麼充足的MCU來說就可以省出一個串口去與其它外圍芯片進行串口通訊。

二、SEGGER_RTT的使用

所需準備,J-Link及SEGGER_RTT源碼。下面演示在Keil-MDK環境下使用SEGGER_RTT:

1、安裝J-Link驅動

STM32中另一種打印調試的方法

安裝完之後就可在看到如圖所示的J-Link RTT Viewer V6.44b,我們待會要把調試信息傳輸到這個軟件上。

2、SEGGER_RTT的收發測試

(1)把SEGGER_RTT_V640添加到我們的工程文件夾中

STM32中另一種打印調試的方法

SEGGER_RTT_V640中的內容如下:

STM32中另一種打印調試的方法

(2)把SEGGER_RTT_V640下的RTT下的所有文件添加到我們的工程中

STM32中另一種打印調試的方法

(3)添加文件路徑

STM32中另一種打印調試的方法

(4)在main.c中添加如下測試代碼

STM32中另一種打印調試的方法


需要注意的是:記得添加頭文件SEGGER_RTT.h,範例工程可在聊天界面回覆關鍵詞RTT進行獲取。

(5)編譯下載到flash中,並啟動RTT Viewer軟件

STM32中另一種打印調試的方法

STM32中另一種打印調試的方法

STM32中另一種打印調試的方法

這個測試程序是對SEGGER_RTT進行收發測試,其中SEGGER_RTT_printf與我們平時用的printf差不多。

三、最後

SEGGER_RTT基本上可以替換掉我們的串口打印調試,關於SEGGER_RTT還有其他可以學習的地方,比如輸出顏色設置、多任務調度等,有需要的朋友可以自己進行學習使用。


分享到:


相關文章: