<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在裸機系統中集成SystemView

麥克泰技術 ? 來源:麥克泰技術 ? 2023-12-29 11:07 ? 次閱讀

SystemView是嵌入式系統可視化分析工具,提供了對應用程序的完整洞察,包括時間軸、CPU負載、運行時間信息、上下文運行時信息等可視化窗口,能夠幫助開發者獲得對應用運行時行為的深入理解。除μC/OS-II、μC/OS-III、FreeRTOS、embOS外,SystemView也支持無OS的裸機系統分析,深入地了解應用。

本文將解釋如何在裸機系統中集成SystemView。

集成操作步驟如下:

1、在Embedded Studio中為使用的設備創建一個新項目

2、將SystemView安裝目錄下的/SEGGER、/Config文件夾中的所有文件和Sample/NoOS/Config/Cortex-M/SEGGER_SYSVIEW_Config_NoOS.c代碼文件添加到項目中

1362c834-a5f7-11ee-8b88-92fbcf53809c.png

3、在SystemViewDescription目錄下創建一個名為SYSVIEW_NoOS.txt的文件,將需記錄的函數添加到該文件中,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中,修改函數 _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()函數中調用SEGGER_SYSVIEW_Conf ();對無os的應用,將整個系統視為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應用中初始化系統節拍時鐘,在節拍處理程序Systick_Handler開始處調用SEGGER_SYSVIEW_RecordEnterISR ();結束時調用SEGGER_SYSVIEW_RecordExitISR()

void SysTick_Handler(void) {
  volatile U32 Cnt;
  SEGGER_SYSVIEW_RecordEnterISR();
  Cnt++;
SEGGER_SYSVIEW_RecordExitISR();
}

9、在應用程序調用需記錄的函數,如_TestFunc0()

10、在Description列表中的每個函數中,調用SEGGER_SYSVIEW_RecordVoid(ID)及 SEGGER_SYSVIEW_RecordEndCall(ID),參數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記錄應該如下圖:

13744f14-a5f7-11ee-8b88-92fbcf53809c.png

基于STM32F407+Embedded Studio的“NoOS”Systemview集成示例工程,下載鏈接:https://wiki.segger.com/images/8/89/SysView_NoOS_GenericCortexM4_Example.zip

僅需修改目標設備名稱,即可將該項目可以用于其他Cortex-M4設備。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式系統
    +關注

    關注

    40

    文章

    3448

    瀏覽量

    128413
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10512

    瀏覽量

    207271
  • SystemView
    +關注

    關注

    5

    文章

    47

    瀏覽量

    24336
  • 裸機
    +關注

    關注

    0

    文章

    37

    瀏覽量

    6181

原文標題:在裸機系統中使用SystemView

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    何在Linux/Android系統中集成壓力傳感器和濕度傳感器?

    何在Linux / Android系統中集成ST s壓力傳感器和濕度傳感器? #壓力濕度傳感器以上來自于谷歌翻譯以下為原文 how to integrate ST?s pressure
    發表于 10-24 11:09

    何在PSoC設計器5.4版本中集成HiTeX編譯器PRO?

    何在PSoC設計器5.4版本中集成HiTeX編譯器PRO。操作系統是Win 10。我有HCPoSC-PRO-961PL6安裝文件和一個補丁的PRO版本?,F在我換了個人電腦,它在我的舊電腦上用Win 8.1工作,但幾年后我不記得
    發表于 10-25 10:54

    SystemView何在RT-Thread上對系統進行調試分析?

    本文主要介紹 SystemView可視化分析工具,以及如何在 RT-Thread 上使用它對系統進行調試分析。
    發表于 03-30 07:39

    基于NXP iMX8平臺演示如何在嵌入式Linux BSP中集成網絡瀏覽器

    BSP中集成網絡瀏覽器,包括Chromium瀏覽器和基于Qtwebenine的示例瀏覽器quicknanobrowser。本文所演示的平臺來自于Toradex Apalis iMX8 ARM嵌入式平臺,這是一個基于NXP iMX8QM ARM處理器,支持Cortex-A72+A53和Coretex..
    發表于 12-21 08:08

    何在項目中使用RTOS分析工具SystemView?

    /OS-II、μC/OS-III、FreeRTOS、embOS和無OS的裸機系統。本文將使用Segger J-Link和NXP LPC54110開發板來介紹Segger SystemView的移植和使用過
    發表于 07-05 14:00

    何在MSP430?微控制器 (MCU) 中集成多種功能

    中,我將說明如何在系統中集成多功能通用處理MCU來縮減物料清單(BOM)成本,節省電路板空間,并最大程度地簡化設計。例如,假如您要創建一個具有以下功能的新設計:LED控制I/O擴展帶電可擦可編程存儲器
    發表于 11-04 07:12

    基于ARM的POS機系統中集成打印研究

    針對ARM CPU 和POS 機的特點,設計開發了嵌入式系統中集成打印平臺。詳細描述了打印的硬件設計工作電路和軟件驅動.在集成打印一體化中,對打印機芯以外的馬達及針頭的控制和狀
    發表于 08-14 11:46 ?38次下載

    基于SystemView的GSM系統設計與仿真

    針對通信實驗室硬件設備不完善的情況,在研究GSM系統原理的基礎上,采用SystemView通信系統設計與仿真軟件,對GSM系統的信源、信道、調制/解調等模塊進行了設計與仿真。該設計避開
    發表于 07-06 16:48 ?136次下載
    基于<b class='flag-5'>SystemView</b>的GSM<b class='flag-5'>系統</b>設計與仿真

    SystemView何在通信系統仿真中應用研究分析概述

    介紹了通信系統仿真和仿真專用工具SystemView,分析了CNI(Communication、Navigation & Identification System)系統中最小頻移健控(MSK)調制方式,并用
    發表于 01-11 15:17 ?5次下載
    <b class='flag-5'>SystemView</b>如<b class='flag-5'>何在</b>通信<b class='flag-5'>系統</b>仿真中應用研究分析概述

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

    本文中,我將說明如何在系統中集成多功能通用處理MCU來縮減物料清單(BOM)成本,節省電路板空間,并最大程度地簡化設計。
    發表于 03-06 06:10 ?19次下載
    在通用微控制器MSP430?<b class='flag-5'>中集成</b>多種功能

    基于SystemView的PCM通信系統仿真

    基于SystemView的PCM通信系統仿真(測試測量儀器銷售經理)-該文檔為基于SystemView的PCM通信系統仿真講解文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,
    發表于 09-30 11:55 ?24次下載
    基于<b class='flag-5'>SystemView</b>的PCM通信<b class='flag-5'>系統</b>仿真

    SystemView在通信系統仿真中的應用研究

    SystemView在通信系統仿真中的應用研究(依工測試測量儀器)-該文檔為SystemView在通信系統仿真中的應用研究講解文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,
    發表于 09-30 12:10 ?8次下載
    <b class='flag-5'>SystemView</b>在通信<b class='flag-5'>系統</b>仿真中的應用研究

    Systemview實現對QPSK系統的仿真與分析

    Systemview實現對QPSK系統的仿真與分析(測試測量計量的區別)-該文檔為用Systemview實現對QPSK系統的仿真與分析講解文檔Sy
    發表于 09-30 12:16 ?11次下載
    用<b class='flag-5'>Systemview</b>實現對QPSK<b class='flag-5'>系統</b>的仿真與分析

    何在OpenMV生態系統中集成STM32Cube.AI生成的代碼

    電子發燒友網站提供《如何在OpenMV生態系統中集成STM32Cube.AI生成的代碼.pdf》資料免費下載
    發表于 09-20 09:55 ?0次下載
    如<b class='flag-5'>何在</b>OpenMV生態<b class='flag-5'>系統</b><b class='flag-5'>中集成</b>STM32Cube.AI生成的代碼

    裸機系統中以任務方式高效利用SystemView調試分析

    對無OS的應用,SystemView除了將整個系統視為idle空閑分析方式外,還可以通過任務方式檢測系統運行時行為。
    發表于 04-26 15:53 ?183次閱讀
    <b class='flag-5'>裸機</b><b class='flag-5'>系統</b>中以任務方式高效利用<b class='flag-5'>SystemView</b>調試分析
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>