SystemView是嵌入式系統(tǒng)可視化分析工具,提供了對應用程序的完整洞察,包括時間軸、CPU負載、運行時間信息、上下文運行時信息等可視化窗口,能夠幫助開發(fā)者獲得對應用運行時行為的深入理解。除μC/OS-II、μC/OS-III、FreeRTOS、embOS外,SystemView也支持無OS的裸機系統(tǒng)分析,深入地了解應用。
本文將解釋如何在裸機系統(tǒng)中集成SystemView。
集成操作步驟如下:
1、在Embedded Studio中為使用的設備創(chuàng)建一個新項目
2、將SystemView安裝目錄下的/SEGGER、/Config文件夾中的所有文件和Sample/NoOS/Config/Cortex-M/SEGGER_SYSVIEW_Config_NoOS.c代碼文件添加到項目中
3、在SystemViewDescription目錄下創(chuàng)建一個名為SYSVIEW_NoOS.txt的文件,將需記錄的函數(shù)添加到該文件中,id編號從33開始:
33 _TestFunc0 34 _TestFunc1
4、在main.c中包含SEGGER_SYSVIEW_Conf.h和SEGGER_SYSVIEW.h文件
#include "SEGGER_SYSVIEW_Conf.h" #include "SEGGER_SYSVIEW.h"
5、在SEGGER_SYSVIEW_Conf.h修改SEGGER_SYSVIEW_ID_BASE為使用設備的RAM地址
#define SEGGER_SYSVIEW_ID_BASE 0x20000000
6、在SEGGER_SYSVIEW_Config_NoOS.c中,修改函數(shù) _cbSendSystemDesc()為
static void _cbSendSystemDesc(void) { SEGGER_SYSVIEW_SendSysDesc("N="SYSVIEW_APP_NAME",O=NoOS,D="SYSVIEW_DEVICE_NAME); }
設置SYSVIEW_RAM_BASE為目標設備的RAM基地址;
// The lowest RAM address used for IDs (pointers) #define SYSVIEW_RAM_BASE (0x20000000)
7、在main()函數(shù)中調用SEGGER_SYSVIEW_Conf ();對無os的應用,將整個系統(tǒng)視為idle空閑任務,調用SEGGER_SYSVIEW_OnIdle()
int main(void) { U32 v; int Cnt; Cnt = 0; SEGGER_SYSVIEW_Conf(); /* Configure and initialize SystemView */ SEGGER_SYSVIEW_Start(); /* Starts SystemView recording*/ SEGGER_SYSVIEW_OnIdle(); /* Tells SystemView that System is currently in "Idle"*/ ……
8、可在main應用中初始化系統(tǒng)節(jié)拍時鐘,在節(jié)拍處理程序Systick_Handler開始處調用SEGGER_SYSVIEW_RecordEnterISR ();結束時調用SEGGER_SYSVIEW_RecordExitISR()
void SysTick_Handler(void) { volatile U32 Cnt; SEGGER_SYSVIEW_RecordEnterISR(); Cnt++; SEGGER_SYSVIEW_RecordExitISR(); }
9、在應用程序調用需記錄的函數(shù),如_TestFunc0()
10、在Description列表中的每個函數(shù)中,調用SEGGER_SYSVIEW_RecordVoid(ID)及 SEGGER_SYSVIEW_RecordEndCall(ID),參數(shù)ID為描述文件中的ID編號
static void _TestFunc0(void) { SEGGER_SYSVIEW_RecordVoid(33); _TestFunc0Cnt = 100; while(50 < --_TestFunc0Cnt); ? ? _TestFunc1(); ? ? while(--_TestFunc0Cnt); ? SEGGER_SYSVIEW_RecordEndCall(33); }
11、運行應用程序并啟動SystemView記錄。
如果構建成功,SystemView記錄應該如下圖:
基于STM32F407+Embedded Studio的“NoOS”Systemview集成示例工程,下載鏈接:https://wiki.segger.com/images/8/89/SysView_NoOS_GenericCortexM4_Example.zip
僅需修改目標設備名稱,即可將該項目可以用于其他Cortex-M4設備。
審核編輯:湯梓紅
-
嵌入式系統(tǒng)
+關注
關注
41文章
3683瀏覽量
131400 -
cpu
+關注
關注
68文章
11080瀏覽量
217108 -
SystemView
+關注
關注
5文章
53瀏覽量
24968 -
裸機
+關注
關注
0文章
40瀏覽量
6700
原文標題:在裸機系統(tǒng)中使用SystemView
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
如何在Eclipse ThreadX RTOS中集成SystemView
如何在Linux/Android系統(tǒng)中集成壓力傳感器和濕度傳感器?
如何在PSoC設計器5.4版本中集成HiTeX編譯器PRO?
SystemView如何在RT-Thread上對系統(tǒng)進行調試分析?
如何在項目中使用RTOS分析工具SystemView?
基于SystemView的GSM系統(tǒng)設計與仿真

SystemView如何在通信系統(tǒng)仿真中應用研究分析概述

在通用微控制器MSP430?中集成多種功能

基于SystemView的PCM通信系統(tǒng)仿真

基于SystemView的擴頻通信系統(tǒng)仿真研究

基于SystemVieW的多路載波通信系統(tǒng)仿真

基于Systemview的脈沖編碼調制系統(tǒng)仿真

用Systemview實現(xiàn)對QPSK系統(tǒng)的仿真與分析

如何在OpenMV生態(tài)系統(tǒng)中集成STM32Cube.AI生成的代碼

裸機系統(tǒng)中以任務方式高效利用SystemView調試分析

評論