目录
1.添加文件
2.配置修改
3.连接运行
4.常见问题
SystemView 是一个可以在线调试嵌入式系统的工具,它可以分析有哪些中断、任务执行了,以及这些中断、任务执行的先后关系。还可以查看一些内核对象持有和释放的时间点,比如信号量、互斥量、事件、消息队列等。这在开发和处理具有多个线程和事件的复杂系统时尤其有效。说白了就是我们可以通过这个软件实时监控我们实时系统的任务切换及调度情况,并且这个软件支持多种实时系统,例如RT-thread FreeRTOS uSCIII等。
1.添加文件
打开SystemView安装目录下的“Src”文件夹:
将下表中的文件均添加至工程目录中:
添加结果如下图所示(以Keil为例,其他开发软件同理):
2.配置修改
(1)在main.c 中添加头文件#include "SEGGER_SYSVIEW.h";
(2)在main函数开始处添加:SEGGER_SYSVIEW_Conf(),初始化SystemView;
(3)在FreeRTOS.h中添加头文件#include "SEGGER_SYSVIEW_FreeRTOS.h";
(4)在 FreeRTOSConfig.h 中添加两个宏定义:
#define INCLUDE_xTaskGetIdleTaskHandle 1
#define INCLUDE_pxTaskGetStackStart 1
3.连接运行
目标板连接好,下载程序,打开SystemView软件,点击Target选项,选择Recorder Configuration:
根据工程继续进行选择:
完成后,点“Start Recording”即可。如下图:
4.常见问题
4.1打开软件后,提示没有版权:
直接点的continue也是能用的,但是可能是有部分功能限制。
4.2在工程中添加相关文件后,出现编译错误,例如: error: #55-D: too many arguments in invocation of macro "traceTASK_NOTIFY_TAKE"等:
检查工程中对Sample文件夹下的系统种类以及系统版本选择是否正确,以及第2步中的配置修改是否有误。
4.3点“Start Recording”后SystemView没有反应,如下所示:
尝试在点击Start Recording时进行硬件复位操作。