使用J-Link也能實(shí)現(xiàn)串口打印輸出數(shù)據(jù)的功能
作者 | strongerHuang
微信公眾號(hào) | 嵌入式專欄
嵌入式軟件基本都會(huì)存在打印輸出數(shù)據(jù)的情況,我們最常見就是串口打印輸出。
如果我們手里沒有232轉(zhuǎn)USB,或者TTL轉(zhuǎn)USB工具,此時(shí),使用J-Link工具同樣也可以實(shí)現(xiàn)串口打印輸出數(shù)據(jù)的功能。
下面就來講講使用J-link的『RTT Viewer』功能實(shí)現(xiàn)打印輸出的方法:
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
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)\SEGGER\JLink\Samples\RTT
解壓SEGGER_RTT_V***.zip之后,復(fù)制整個(gè)RTT目錄源碼到你工程。
提示:
解壓之后,只需復(fù)制RTT目錄就行。
4.1 添加RTT到工程
添加源碼文件到工程主要有兩個(gè)步驟:1.添加源碼文件到工程。2.添加文件路徑。
當(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)\SEGGER\JLink
下載程序到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
說明
1.該文檔僅供個(gè)人學(xué)習(xí)使用,版權(quán)所有,禁止商用。
2.本文由我一個(gè)人編輯并整理,難免存在一些錯(cuò)誤。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!