隨著嵌入式系統(tǒng)規(guī)模和復(fù)雜度不斷提升,傳統(tǒng)的調(diào)試手段已難以滿足對系統(tǒng)運(yùn)行狀態(tài)的精細(xì)化分析需求。為提升開發(fā)效率、優(yōu)化系統(tǒng)性能,RT-Thread 推出了一款全新調(diào)試工具 ——RT-Trace。該工具基于SWO 技術(shù)實(shí)現(xiàn)對操作系統(tǒng)運(yùn)行狀態(tài)的實(shí)時跟蹤,無需安裝額外軟件,即可通過 Web 頁面直觀查看線程切換、中斷響應(yīng)等關(guān)鍵信息,極大降低了調(diào)試門檻。
本文將以實(shí)際開發(fā)板為基礎(chǔ),展示 RT-Trace 的Trace 功能在調(diào)試Cortex-M4 平臺中的應(yīng)用效果,包括配置流程、可視化分析、時間測量等操作體驗(yàn),幫助開發(fā)者更全面地了解該工具在項(xiàng)目開發(fā)中的應(yīng)用價值。

1.
進(jìn)入RT-Trace配置頁面
在板子的右下角是有Trace的IP地址,我們在瀏覽器中輸入該地址進(jìn)入配置頁面。
擺在第一行的就是Trace功能的介紹。可以看到有如下特點(diǎn):
基于SWO 的 RT-Thread OS 跟蹤 (Trace) 功能,無需額外安裝軟件,捕獲線程關(guān)系。
免安裝的 Web UI,直接在瀏覽器中實(shí)時顯示線程間的調(diào)用關(guān)系。
以高速 SWO Trace 為基礎(chǔ),后續(xù)升級固件支持持久化線程運(yùn)行記錄,統(tǒng)計(jì)各線程用量與 CPU 隨時間的工作負(fù)載。
后續(xù)升級支持 TPIU Trace 接口,可以觀察到更多內(nèi)部信息。
從介紹捕獲線程功能來看,RT-Trace應(yīng)該是定位一款專用工具,因?yàn)椴煌?a href="http://m.xsypw.cn/tags/RTOS/" target="_blank">RTOS的線程控制塊是不一樣的,需要人力物力去適配。
2.
Trace 配置
點(diǎn)擊左側(cè)的Trace Config選項(xiàng)進(jìn)入配置頁面。
本次調(diào)試的板子是Cortex-M4內(nèi)核的STM32F407,使用的是RT-Thread的星火一號開發(fā)板。板子鏈接至星火一號開發(fā)板預(yù)留的Trace接口。
進(jìn)入頁面后,首先配置選擇JTAG,Cortex(RISC-V的芯片選擇RISC-V),頻率默認(rèn),然后點(diǎn)擊提交即可,此時在右上角可以顯示芯片的ID,顯示正確則表示連接成功。
然后依次點(diǎn)擊下述兩個自動探測選項(xiàng),探測線程的地址與MCU主頻(這里比較好奇線程地址是怎么探測出來的,是否有大佬解答一二),然后swo的頻率可以調(diào)高一些,這里配置為21,最后點(diǎn)擊提交配置就可以啦。下面是配置完成的頁面。
然后點(diǎn)擊左側(cè)的Trace Viewer選項(xiàng)進(jìn)入Trace頁面。
3.
Trace Viewer
進(jìn)入Trace Viewer頁面如下。
點(diǎn)擊左上角的Start選項(xiàng)進(jìn)行Trace,適當(dāng)時間后點(diǎn)擊stop選項(xiàng),完成Trace,點(diǎn)擊左側(cè)的perfett0-trace選項(xiàng)出現(xiàn)下述頁面。
接下來將探測出的波形圖局部放大進(jìn)行觀察。
局部放大后可以直觀的看到各個線程與中斷的運(yùn)行情況,看來這個對調(diào)試RT-Thread項(xiàng)目是個不錯的選擇。有時候我們期望看一下某個線程的執(zhí)行時間,比如這里看一下shell線程的執(zhí)行時間,點(diǎn)擊左鍵選擇shell線程的起始位置,便可以看到shell線程當(dāng)前一次執(zhí)行的時間為10us,這個功能很不錯呀。
我們知道在cortex-m系列的MCU,RTOS的切換大多由pendsv中斷實(shí)現(xiàn),,那么框選下述部分我們便可以看到當(dāng)前一個線程切換到另一個不同的線程的時間。下圖當(dāng)前運(yùn)行過程從shell線程到idle線程用時5.3us。
當(dāng)然想看一下某個中斷到線程的切換時間也是同樣的道理。比如下述從pendsv中斷到idle線程用時1.5us。
這期體驗(yàn)就到這里啦,最后總結(jié)一下使用感受吧。
4.
體驗(yàn)總結(jié)
優(yōu)點(diǎn):
直觀的將系統(tǒng)的線程運(yùn)行狀態(tài)展示出來便于調(diào)試以及對項(xiàng)目線程的優(yōu)化
原生支持RT-Thread無需其他額外適配工作,探測功能很方便
時間測量功能很方便,可以知道線程到線程,線程到中斷,線程的執(zhí)行時間,中斷服務(wù)函數(shù)的執(zhí)行時間等等,方便優(yōu)化自己的項(xiàng)目
缺點(diǎn):
當(dāng)前主要支持ARM系列的芯片,相對使用其他架構(gòu)的RT-Thread的項(xiàng)目就有點(diǎn)可惜,未來會支持?
是否可以加一個一鍵出報告的功能,不需要用戶一個一個去點(diǎn)去測量,針對一些RTOS的指標(biāo)可以一鍵輸出?
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3676瀏覽量
131256 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7135瀏覽量
125428 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5650瀏覽量
104085
發(fā)布評論請先 登錄

IAR EWARM的SWO Trace調(diào)試功能
使用IAR ETM Trace調(diào)試功能的要求
Cortex-M4處理器教程之Cortex-M4培訓(xùn)課件免費(fèi)下載

Cortex-M4內(nèi)核處理器的技術(shù)參考手冊

trace32 for rt-thread support的基本使用及系統(tǒng)插件原理
J-Link和J-Trace用戶指南免費(fèi)下載

IAR下使用J_Trace進(jìn)行指令跟蹤

ARM Cortex-M4內(nèi)核MCU

詳解CoreSight技術(shù)中的調(diào)試和跟蹤功能
Trace功能的添加、組態(tài)及測試
如何在i.MX RT11xx系列上使能ETM Trace
重磅預(yù)售!RT-Trace調(diào)試工具

RT-Trace調(diào)試工具正式發(fā)布!

評論