"); //-->
在RTOS应用的设计过程中,由于任务调度切换是由RTOS任务调度器来管理的,RTOS应用的源代码并不能完全反映多任务系统运行时的实时行为,多任务系统的实时行为还取决于任务、中断、输入和他们的相互作用。因此RTOS应用的实时行为对于开发者而言并不是非常直观的,此时就可以用到SystemView这样的RTOS可视化分析工具来帮助分析应用的实际执行过程。
SystemView是SEGGER公司开发的嵌入式系统可视化分析工具,提供了对应用程序的完整洞察,包括时间轴、CPU负载、运行时间信息、上下文运行时信息等可视化窗口,能够帮助开发者获得对应用运行时行为的深入理解。SystemView支持uC/OS-II、μC/OS-III、FreeRTOS、embOS和无OS的裸机系统。
本文将使用Segger J-Link和NXP LPC54110开发板来介绍Segger SystemView的移植和使用过程,包含设备端SystemView相关应用代码的添加和PC端SystemView软件的设置,使用到的RTOS版本是FreeRTOS 10.3.0版本。
SystemView工作模式介绍
持续记录模式:基于J-Link调试器和SEGGER实时传输技术(RTT),SystemView可以在目标程序运行时实时地记录目标执行情况,不使用J-Link RTT技术,也可以通过串口或者TCP/IP实现。
Single-Shot模式:当目标设备不支持RTT或没有使用J-Link时,SEGGER SystemView可以用于记录数据,直到其目标缓冲区被填充满时停止记录。
Post-Mortem模式:类似Single-Shot模式,但会在缓冲区填满时覆盖旧的事件,所以,记录到的是最新的系统活动事件。这个模式可用于分析某些应用突然崩溃的问题,SystemView可以显示系统崩溃前发生的情况。
一、目标设备端添加SystemView和RTT的实现代码
(1)要使用SEGGER SystemView,首先要把SystemView和RTT源码文件加到目标应用工程,SystemView和RTT的源码包在PC端SystemView软件的安装目录下有提供。
源码部分包含3个部分:
1、SystemView和RTT实时传输技术的配置文件:可能需要根据应用需求进行一定的修改。
2、SystemView和RTT技术的具体实现源码:通常不需要修改这里的文件。
3、用于多种类型OS及不同版本OS所对应的接口文件:根据应用实际情况选择对应接口文件即可。
将前面提到的源码和配置文件加入到工程中后,工程中包含的文件如下,注意还需要在IDE中设置新添加的这些C文件和汇编代码文件的包含路径。
(2)进行一些和SystemView相关的配置
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
eleaction01 阅读:2978