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设备。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3563

    浏览量

    129203
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211088
  • SystemView
    +关注

    关注

    5

    文章

    50

    浏览量

    24491
  • 裸机
    +关注

    关注

    0

    文章

    39

    浏览量

    6345

原文标题:在裸机系统中使用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版本。现在我换了个人电脑,它在我的旧电脑上用Win 8.1工作,但几年后我不记得
    发表于 10-25 10:54

    SystemView何在RT-Thread上对系统进行调试分析?

    本文主要介绍 SystemView可视化分析工具,以及如何在 RT-Thread 上使用它对系统进行调试分析。
    发表于 03-30 07:39

    何在项目中使用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

    基于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 26次下载
    基于<b class='flag-5'>SystemView</b>的PCM通信<b class='flag-5'>系统</b>仿真

    基于SystemView的扩频通信系统仿真研究

    基于SystemView的扩频通信系统仿真研究(测试测量系统)-该文档为基于SystemView的扩频通信系统仿真研究讲解文档,是一份不错的
    发表于 09-30 12:03 10次下载
    基于<b class='flag-5'>SystemView</b>的扩频通信<b class='flag-5'>系统</b>仿真研究

    基于SystemVieW的多路载波通信系统仿真

    基于SystemVieW的多路载波通信系统仿真(依工测试测量仪器)-该文档为基于SystemVieW的多路载波通信系统仿真讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,
    发表于 09-30 12:11 31次下载
    基于<b class='flag-5'>SystemVieW</b>的多路载波通信<b class='flag-5'>系统</b>仿真

    基于Systemview的脉冲编码调制系统仿真

    基于Systemview的脉冲编码调制系统仿真(测试测量仪器设备)-该文档为基于Systemview的脉冲编码调制系统仿真讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,
    发表于 09-30 12:14 16次下载
    基于<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 899次阅读
    <b class='flag-5'>裸机</b><b class='flag-5'>系统</b>中以任务方式高效利用<b class='flag-5'>SystemView</b>调试分析