1寫在前面
SWO:Serial Wire Output,串行線輸出
RTT:Real Time Transfer,實(shí)時(shí)傳輸
前面SWO文章,實(shí)現(xiàn)原理是通過MCU的SWO引腳輸出信息(到顯示終端SWV)。
而本文講述的RTT不需要通過額外SWO引腳,即可實(shí)現(xiàn)printf輸出,而且性能(耗時(shí))遠(yuǎn)高于SWO。
2關(guān)于RTT
SEGGER實(shí)時(shí)傳輸(RTT)是一種在嵌入式應(yīng)用中實(shí)現(xiàn)交互式用戶I/O的技術(shù)。
它結(jié)合了SWO和半主機(jī)( semihosting)的優(yōu)點(diǎn),具有很高的性能。
使用RTT,可以從目標(biāo)微控制器輸出信息,并以非常高的速度向應(yīng)用程序發(fā)送輸入,而不會(huì)影響目標(biāo)的實(shí)時(shí)性。
Cortex - M0不支持SWO,而本文講述的RTT則支持Cortex - M0,文末提供STM32F0工程。
3關(guān)于J-Link RTT Viewer
J-Link RTT Viewer是在調(diào)試主機(jī)上使用RTT功能的Windows GUI應(yīng)用程序。
RTT Viewer可以獨(dú)立使用,打開自己與J-Link的連接,并與正在運(yùn)行的調(diào)試會(huì)話目標(biāo)或并行,連接到它并使用現(xiàn)有的J-Link連接。
RTT Viewer支持RTT的主要功能:
·通道0上的終端輸出
·將文本輸入發(fā)送到通道0
·最多16個(gè)虛擬終端,只有一個(gè)目標(biāo)通道
·控制文本輸出:彩色文本,擦除控制臺(tái)
·在通道1上記錄數(shù)據(jù)
·
·
本文主要結(jié)合J-Link RTT Viewer講述,當(dāng)然支持RTT的還有J-Link RTT Client 和J-Link RTT Logger。
更多相關(guān)介紹,可以參看:
https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer
(公號(hào)不支持外鏈接,請(qǐng)復(fù)制鏈接到瀏覽器打開)
4獲取RTT源碼
我們需要在工程中添加RTT源碼,同時(shí)需要J-Link RTT Viewer查看器支持。
J-Link / J-Trace下載地址(Windows版本):
https://www.segger.com/downloads/jlink/JLink_Windows.exe
安裝之后,在安裝目錄下包含RTT源碼:
C:Program Files (x86)SEGGERJLinkSamplesRTT
解壓SEGGER_RTT_V***.zip之后,復(fù)制整個(gè)RTT目錄源碼到你工程。
提示:
解壓之后,只需復(fù)制RTT目錄就行。
4.1 添加RTT到工程
添加源碼文件到工程主要有兩個(gè)步驟:1.添加源碼文件到工程。 2.添加文件路徑。
這里不講述具體添加過程,Keil 和 IAR之前有講述,請(qǐng)參看我的文章:
Keil新建基礎(chǔ)軟件工程
IAR新建基礎(chǔ)軟件工程
當(dāng)然,我下面有提供添加好的源碼工程。
4.2 應(yīng)用程序
調(diào)用RTT的打印,和常規(guī)的printf類似。
添加頭文件:#include "SEGGER_RTT.h"
再調(diào)用SEGGER_RTT_printf函數(shù)打印輸出:
這里SEGGER_RTT_printf和print不同的是:前面多了一個(gè)“終端號(hào)”參數(shù)。(我們使用終端0)
5RTT Viewer配置、輸出
和前面講述的SWV查看器類似,配置相關(guān)信息即可輸出。
安裝目錄:C:Program Files (x86)SEGGERJLink
下載程序到MCU,連接J-Link,打開安裝目錄下的J-Link RTT Viewer,配置參數(shù):
輸出效果:
6下載
為方便大家理解,提供源碼工程下載,參考代碼:
STM32F051(HAL)_JLink-RTT
STM32F103(HAL)_JLink-RTT
百度網(wǎng)盤:
https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA
提取碼:nbd3
提示:
1.公眾號(hào)不支持外鏈接,請(qǐng)復(fù)制鏈接到瀏覽器打開。
2.源碼僅供個(gè)人學(xué)習(xí)參考,不一定適用于實(shí)際項(xiàng)目。
3.若鏈接失效,請(qǐng)關(guān)注公眾號(hào),回復(fù)『printf系列教程』獲取最新鏈接。
7
-
串行
+關(guān)注
關(guān)注
0文章
237瀏覽量
33769 -
SWOT
+關(guān)注
關(guān)注
0文章
4瀏覽量
7960 -
Printf
+關(guān)注
關(guān)注
0文章
81瀏覽量
13608
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論