上一期已經(jīng)跟著小編介紹的安裝步驟,相信大家都已經(jīng)開始使用了Segger Ozone調(diào)試工具。那么今天小編繼續(xù)趁熱打鐵,給大家介紹另一個Segger推出的調(diào)試輔助工具Segger RTT。
Segger RTT(Real Time Transfer)是一款由SEGGER公司開發(fā)的嵌入式系統(tǒng)監(jiān)控和交互工具,主要用于嵌入式應(yīng)用程序中的實(shí)時(shí)數(shù)據(jù)傳輸和調(diào)試。
定義與功能:
RTT是一種用于嵌入式系統(tǒng)的實(shí)時(shí)傳輸技術(shù),能夠在不影響嵌入式應(yīng)用實(shí)時(shí)行為的情況下,實(shí)現(xiàn)高速雙向通信。它不僅可以輸出調(diào)試信息,還可以從外部輸入控制命令,支持多個通道用于不同目的。
兼容性:
RTT支持多種單片機(jī)架構(gòu),包括ARM Cortex-A/R/M系列芯片,以及RISC-V和Renesas RX等。
主要特點(diǎn):
高速傳輸速率:RTT使用調(diào)試通道進(jìn)行通信,不占用額外的GPIO等外設(shè)接口,因此傳輸速率極快,不會影響嵌入式應(yīng)用的實(shí)時(shí)行為
雙向通信能力:RTT具備與目標(biāo)嵌入式應(yīng)用的雙向通信能力,既可以輸出調(diào)試信息,也可以接收外部控制命令
多通道支持:RTT在兩個傳輸方向上支持多個通道,每個通道可用于不同的目的,如標(biāo)準(zhǔn)輸出、錯誤輸出、調(diào)試輸出等
易用性:RTT的實(shí)現(xiàn)代碼可以免費(fèi)下載,并且可以輕松集成到任何現(xiàn)有的應(yīng)用程序中。通過在PC上使用J-Link RTT Viewer工具,用戶可以方便地查看和管理多個虛擬終端。
使用場景:
替代串口調(diào)試:RTT可以替代傳統(tǒng)的串口調(diào)試方式,節(jié)省串口資源,并降低串口打印對系統(tǒng)實(shí)時(shí)性的影響
中斷打印:RTT支持在中斷中打印信息,這是傳統(tǒng)printf函數(shù)無法實(shí)現(xiàn)的
多平臺支持:RTT不依賴操作系統(tǒng),可以在裸機(jī)上運(yùn)行,并支持多種終端端口使用
實(shí)時(shí)數(shù)據(jù)讀寫管理:基于目標(biāo)MCU內(nèi)存中的RTT控制塊結(jié)構(gòu)體,RTT能夠?qū)崿F(xiàn)實(shí)時(shí)數(shù)據(jù)讀寫管理
接下來介紹下RTT的工作原理,簡單來講RTT的工作核心是一個位于RAM中的控制塊結(jié)構(gòu),以及一個環(huán)形緩沖區(qū)來處理每個通道的每個配置方向(上行/下行)。每個緩沖區(qū)都可以在運(yùn)行時(shí)由應(yīng)用程序配置和添加。每個通道可以配置為阻塞或非阻塞模式。示意圖如下:
在Zephyr中添加RTT也可以說是一步到位,得益于Zephyr的軟件框架,我們只需要通過打開幾個kConfig文件的變量即可:
CONFIG_UART_CONSOLE=n CONFIG_RTT_CONSOLE=y CONFIG_USE_SEGGER_RTT=y CONFIG_SHELL_BACKEND_RTT=y |
通過打開這幾個配置變量,重新編譯Zephyr代碼,當(dāng)我們想要通過調(diào)用printk來打印時(shí),即可實(shí)現(xiàn)通過Segger RTT來進(jìn)行輸出:
讓我們來看下具體實(shí)現(xiàn),通過單步調(diào)試,打開printk的源代碼,我們可以看到,其底層實(shí)際上調(diào)用的是SEGGER_RTT_Write()函數(shù): 這樣一來,我們就可以省掉一個uart口,只通過Jlink這個調(diào)試端口進(jìn)行l(wèi)og信息的打印。以防止某些時(shí)間敏感代碼在運(yùn)行時(shí)受到影響。
-
嵌入式
+關(guān)注
關(guān)注
5114文章
19341瀏覽量
311377 -
調(diào)試
+關(guān)注
關(guān)注
7文章
599瀏覽量
34296 -
RTT
+關(guān)注
關(guān)注
0文章
66瀏覽量
17345 -
SEGGER
+關(guān)注
關(guān)注
0文章
44瀏覽量
14262
原文標(biāo)題:Zephyr領(lǐng)進(jìn)門系列-Segger RTT的使用
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
【開源代碼】-基于國民N32G45x系列MCU使用JLINK的開發(fā)組件工具-RTT Viewer 調(diào)試打印

AG32 下使用 Segger RTT
怎樣去調(diào)試RT-Thread的segger RTT中斷功能
SEGGER_RTT是什么?如何去使用它
FPGA調(diào)試工具-chipscope
舵機(jī)調(diào)試工具
華大移植SEGGER_RTT 打印

評論