如何使用SystemView的堆监控功能
栏目:科研动态 发布时间:2024-08-12

  SystemView能够监视应用程序如何使用动态存储。这意味着,如果应用程序中使用了C或提供的内存池对象,我们可以跟踪这些对象的使用情况。SystemView可以在一个应用中监视所有堆,分析它们的使用情况,并展示收集到的,使用户能够查看堆的负载情况,发现潜在的内存泄漏,跟踪内存使用峰值等等。

  本文档将展示如何以最少干扰的方式调整现有代码来使用SystemView的heap功能。

  描述heap内部组织结构。在嵌入式系统中,heap有多种不同的组织方式,因此需使用此函数来提供使用的heap内存的具体信息。可能需要查看链接器脚本文件并使用它定义的一些符号 (例如示例项目中的__heap_start__和__heap_size__)。这个函数必须在使用SystemView堆API之前调用。

  该函数应该在每次分配完成时调用。请记住,提供的内部分配块通常大于用户请求的块。

  因此,这些API必须伴随着对应的堆管理函数调用,如C标准库的heap函数malloc、realloc和free的情况,如何在现有项目中最有效地做到这一点,而不是根据这些信息从头开始创建项目?

  示例项目代码基于embOS实时操作系统,创建了三个任务,任务实现中使用标准的C heap功能,执行一些随机分配和相应的释放。由于链接器封装功能,这些调用也将产生对SystemView heap API的调用,向SystemView应用程序发送必要的信息。

  SystemView是面向嵌入式系统实时记录、可视化和分析工具,可以监控应用程序如何使用动态存储,直观地呈现内存已分配但未释放的使用信息。

  在许多情况下,可以在应用程序的生命周期内分配内存,而不会出现问题。当heap的峰值负载随着时间的推移而增加时,应用程序可能会泄漏内存。使用SystemView的堆监视器,可以很容易地看到这些更改和分配的位置,从而提供有关泄漏可能在哪里的线索。动态存储在嵌入式系统中的应用越来越广泛,有了SystemView,监控和管理动态存储已经从不可避免的事情变成了可管理的事情。

  麦克泰公司代理SEGGER全线产品,具有丰富的RTOS分析软件与调试工具使用方面的知识和经验,欢迎咨询。

  文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

  在 SEGGER_SYSVIEW_RTThread.c中 Info.sName = thread-name; 提示 packages/

  中有些中断:ISR 35, ISR 36, ISR 53等等。具体对应哪个中断,怎么查?

  本文的目的和结构本文的目的和背景随着 MCU 的性能越来越强,嵌入式产品的

   多媒体教学 交互式教案 仿线; 科研项目预研和系统验证一、高校通信专业教学面临的挑战二、

  在通信专业教学中的主要应用途径 /

  在《通信原理》课程设计中的仿真应用。通过对MSK 的实际仿真分析,显示了

  的应用 /

  仿真软件进行了简要的介绍,并在此基础上完成了对通信系统原理的仿真。结果表明,通过用

  的接收信号中载波的提取 /

  的PCM通信系统仿真讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,

  的PCM通信系统仿真 /

  的串行MSK调制与解调的仿真研究讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,

  的串行MSK调制与解调的仿真研究 /

  的多路载波通信系统仿真讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,

  的多路载波通信系统仿真 /

  的脉冲编码调制系统仿真讲解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,

  的脉冲编码调制系统仿真 /

  实现对QPSK系统的仿真与分析 /

  e2studio开发磁力计LIS2MDL(1)----轮询获取磁力计数据

  e2studio开发三轴加速度计LIS2DW12(1)----轮询获取加速度数据

  【核桃派ZeroW开发板体验连载】给ChatGPT装上眼睛,并且还可以语音对线 阅读

  【龙芯2K0300蜂鸟板试用】tinnu-02-有线网卡驱动问题导致的SSH连接问题

  【龙芯2K0300蜂鸟板试用】2 系统编译(uboot/kernel/buildroot)和镜像替换银河官方官网


本文由:银河国际科学研究院提供