SEGGER SystemView無操作系統移植

SystemView

SEGGER SystemView可以用來監控RTOS中的線程切換,中斷的進入、退出,在沒有操作系統的時候可以用來監控中斷的執行情況。這一切只需要你連接了JLink,不需要額外的接線。另外還附送一個Terminal,這個Terminal原來叫做JLinkRTT,即 Real Time Terminal,現在可能改名叫Real Time Transfer了,然后基于這個技術開發了SystemView(這些都是我猜的 ),這個在有RTOS的地方可以肯定是非常有用的,不過我現在用在沒有OS的地方,監控下中斷也挺好嘛,還省了uart接口了。

首先下載SystemView安裝 (在Ubuntu下并沒有生成.desktop文件,我是從命令行打SystemView命令啟動的),然后下載SystemView Target Sources,解壓。

SystemView Target Sources

然后把Sample/Config目錄下的SEGGER_SYSVIEW_Config_NoOS.c文件復制到Config目錄下。然后將ConfigSEGGER目錄下的所有文件都添加到工程中。
像手冊中敘述的一樣,在main函數所在的文件添加#include "SEGGER_SYSTEM.h",然后調用SEGGER_SYSVIEW_Conf(),初始化SystemView功能。在中斷文件中添加#include "SEGGER_SYSTEM.h",中斷進入的地方添加SEGGER_SYSVIEW_RecordEnterISR()退出的地方添加SEGGER_SYSVIEW_RecordExitISR(),要打印信息的地方添加SEGGER_SYSVIEW_Print(const char * s)。

然后連接JLink,打開SystemView軟件,就可以看到中斷信息了。

如果SystemView軟件顯示找不到RTT control block,可以在map文件中查找_SEGGER_RTT的地址,然后監控的時候不使用自動查找,而使用固定地址,或者指定查找的范圍,我是用的查找范圍0x2003e000 2048

關于操作系統中的移植可以參考RT-Thread的,segger_debug

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容