SystemView 應用筆記

一 .什麼是Systemview?

SystemView 是一個可以在線調試嵌入式系統的工具,它可以分析有哪些中斷、任務執行了,以及這些中斷、任務執行的先後關係。還可以查看一些內核對象持有和釋放的時間點,比如信號量、互斥量、事件、消息隊列等。這在開發和處理具有多個線程和事件的複雜系統時尤其有效。

說白了就是我們可以通過這個軟件實時監控我們實時系統的任務切換及調度情況,並且這個軟件支持多種實時系統,包括RT-thread FreeRTOS uSCIII等。

參考鏈接:

https://blog.csdn.net/qq_29486527/article/details/88010893

https://blog.csdn.net/bjr2016/article/details/78495508?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

 

二.怎麼將他應用到freeRTOS實時系統上

想用到RT-thread上可以參考RT-thread文檔中心

https://www.rt-thread.org/document/site/application-note/debug/systemview/an0009-systemview/#

剛開始弄這東西的時候也是一頭霧水,這麼牛逼的軟件,怎麼開始用到自己的項目中呢,百度一下吧,各種文檔也是看的自己迷迷糊糊。那麼怎麼開始用呢。

2.1肯定是下載system view這個軟件唄,從哪下載,首選當然是官網。

https://www.segger.com/downloads/systemview/

目前這個軟件已經更新到了v3.10,雖然這個軟件是免費的但是需要配合J-link才能使用,但是正版的j-link纔有授權,但是這東西很貴的,果然下載了最新版本是不能用的,查看網上有大神和諧了V2.52a,按照方法確實也破解成功了,但是該版本只能用M3的,我的板卡是M4的,不知道是不是破解的不對,最後也沒有弄成功。

最後在硬漢論壇,找到了一個版本V3.07的版本

http://www.armbbs.cn/forum.php?mod=viewthread&tid=95949&fromuid=58

下載後親測可用。

2.2當你下載完了,你就認爲可以用了?這裏一般還是要更新你的j-link驅動的。我開始用的J-link V8最後也沒更新成功,最後還是花了100塊錢買了個v9的下載器,雖然肯定沒正版好用,也算是能用吧。

 

 

提示有版權問題,我直接點的continue也是能用的,不過肯定有功能限制,不過新的版本V3.10版本已經支持TCP和串口來監測了,避免了J-link的尷尬。

 

安裝成功了,他會自動加載一個測試的程序。

2.3軟件安裝完了,就可以開心的用到自己的項目了??當然不是

他是一個監控軟件,你的項目中肯定也要添加相關帶來來和這個軟件來配合,不過不用擔心,添加代碼的步驟不復雜,佔用的內存也不是很多。

軟件安裝完之後,在他的安裝路徑下可以找到以下文件夾,這些就是對不同實時系統的支持文件。不同版本位置稍有差異,不過肯定都有啦。

 

2.3.1添加相關文件到你的工程中(不管你是keil還是IAR添加文件的操作就不說了)

 

\TargetSrc\Config 目錄下的文件。

\TargetSrc\SEGGER 目錄下的文件。

與下位機使用的操作系統相關的文件。 本人使用系統的是 FreeRTOS 9.00,用到的是這幾個文件:

\TargetSrc\Sample\Config 目錄下的 SEGGER_SYSVIEW_Config_FreeRTOS.c 文件。

\TargetSrc\Sample\OS 目錄下的 SEGGER_SYSVIEW_FreeRTOS.c 和

SEGGER_SYSVIEW_FreeRTOS.h 文件

文件位置可能會稍有不同,文件就是這幾個文件。

2.3.2修改相關配置

(1)添加頭文件在main.c 中    #include "SEGGER_SYSVIEW.h"

    在系統運行之間初始化 SystemView,具體來說就是在系統運行之前增加以下語句:SEGGER_SYSVIEW_Conf();

(2)在 FreeRTOS.h 文件的頭部包含 #include "SEGGER_SYSVIEW_FreeRTOS.h"

(3)在 FreeRTOSConfig.h  中添加兩個宏定義

#define INCLUDE_xTaskGetIdleTaskHandle  1

#define INCLUDE_pxTaskGetStackStart     1

這樣修改就基本完成了,添加過程不復雜。

 

2.4通過jlink 連接目標板    運行  system view , 左側 三角 

如果此時在Target Device 中找不到你的片子, 重裝下jlink 驅動

然後選擇你的片子類型,我用的是st的STM32L476RE。

 

此時就可以對你的系統進行分析了。(可以先保存,省的軟件崩掉)

三.他有什麼功能

監控是成功了,但是這個通過這個軟件能獲得哪些信息呢?

 

這是截圖別的版本的,基本都差不多。

 

在詳細的內容可以查看這個人的博客

https://blog.csdn.net/bjr2016/article/details/78474154

這個軟件通過使用,感覺還是非常強大的,對我們理解學習實時系統會是一個很好的工具。

 

此文檔只做學習使用,如有問題可聯繫我進行更改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章