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

1.
進入RT-Trace配置頁面
在板子的右下角是有Trace的IP地址,我們在瀏覽器中輸入該地址進入配置頁面。

擺在第一行的就是Trace功能的介紹。可以看到有如下特點:
基于 SWO 的 RT-Thread OS 跟蹤 (Trace) 功能,無需額外安裝軟件,捕獲線程關系。
免安裝的 Web UI,直接在瀏覽器中實時顯示線程間的調(diào)用關系。
以高速 SWO Trace 為基礎,后續(xù)升級固件支持持久化線程運行記錄,統(tǒng)計各線程用量與 CPU 隨時間的工作負載。
后續(xù)升級支持 TPIU Trace 接口,可以觀察到更多內(nèi)部信息。
從介紹捕獲線程功能來看,RT-Trace應該是定位一款專用工具,因為不同RTOS的線程控制塊是不一樣的,需要人力物力去適配。
2.
Trace 配置
點擊左側(cè)的Trace Config選項進入配置頁面。
本次調(diào)試的板子是Cortex-M4內(nèi)核的STM32F407,使用的是RT-Thread的星火一號開發(fā)板。板子鏈接至星火一號開發(fā)板預留的Trace接口。

進入頁面后,首先配置選擇JTAG,Cortex(RISC-V的芯片選擇RISC-V),頻率默認,然后點擊提交即可,此時在右上角可以顯示芯片的ID,顯示正確則表示連接成功。
然后依次點擊下述兩個自動探測選項,探測線程的地址與MCU主頻(這里比較好奇線程地址是怎么探測出來的,是否有大佬解答一二),然后swo的頻率可以調(diào)高一些,這里配置為21,最后點擊提交配置就可以啦。下面是配置完成的頁面。

然后點擊左側(cè)的Trace Viewer選項進入Trace頁面。
3.
Trace Viewer
進入Trace Viewer頁面如下。

點擊左上角的Start選項進行Trace,適當時間后點擊stop選項,完成Trace,點擊左側(cè)的perfett0-trace選項出現(xiàn)下述頁面。

接下來將探測出的波形圖局部放大進行觀察。

局部放大后可以直觀的看到各個線程與中斷的運行情況,看來這個對調(diào)試RT-Thread項目是個不錯的選擇。有時候我們期望看一下某個線程的執(zhí)行時間,比如這里看一下shell線程的執(zhí)行時間,點擊左鍵選擇shell線程的起始位置,便可以看到shell線程當前一次執(zhí)行的時間為10us,這個功能很不錯呀。

我們知道在cortex-m系列的MCU,RTOS的切換大多由pendsv中斷實現(xiàn),,那么框選下述部分我們便可以看到當前一個線程切換到另一個不同的線程的時間。下圖當前運行過程從shell線程到idle線程用時5.3us。

當然想看一下某個中斷到線程的切換時間也是同樣的道理。比如下述從pendsv中斷到idle線程用時1.5us。

這期體驗就到這里啦,最后總結一下使用感受吧。
4.
體驗總結
優(yōu)點:
直觀的將系統(tǒng)的線程運行狀態(tài)展示出來便于調(diào)試以及對項目線程的優(yōu)化
原生支持RT-Thread無需其他額外適配工作,探測功能很方便
時間測量功能很方便,可以知道線程到線程,線程到中斷,線程的執(zhí)行時間,中斷服務函數(shù)的執(zhí)行時間等等,方便優(yōu)化自己的項目
缺點:
當前主要支持ARM系列的芯片,相對使用其他架構的RT-Thread的項目就有點可惜,未來會支持?
是否可以加一個一鍵出報告的功能,不需要用戶一個一個去點去測量,針對一些RTOS的指標可以一鍵輸出?
5.
立即搶購

?? 淘寶搶購直達:https://item.taobao.com/item.htm?id=925443015784
End


想要在RT-Thread平臺或社區(qū)投放內(nèi)容?或想?yún)⑴c相關直播活動及賽事?RT-Thread已開放對接窗口,請通過郵件與我們?nèi)〉寐?lián)系,期待合作!
合作郵箱: tongfangyi@rt-thread.com
歡迎聯(lián)系小睿助手:

點擊下方“閱讀原文”