- 拷贝\SEGGER\SystemView\Src所有到工程目录
- 配置工程:
2.配置修改
(1)在main.c 中添加头文件#include "SEGGER_SYSVIEW.h";
(2)在main函数开始处添加:SEGGER_SYSVIEW_Conf(),初始化SystemView;
(3)在FreeRTOSConfig.h中添加头文件#include "SEGGER_SYSVIEW_FreeRTOS.h";
(4)在 FreeRTOSConfig.h 中添加两个宏定义:
#define INCLUDE_xTaskGetIdleTaskHandle 1
#define INCLUDE_pxTaskGetStackStart 1
(5)在FreeRTOSConfig.h文件中将FreeRTOS的跟踪功能开启。
#define configUSE_TRACE_FACILITY 1
(6)SystemView工作模式设置
通过SEGGER_SYSVIEW_Confdefaults.h文件中的SEGGER_SYSVIEW_POST_MORTEM_MODE宏,可以设置SystemView工作在Single-Shot或Post-Mortem模式。Disable(0)值设置为连续记录模式(使用J-Link),或Single-Shot记录模式(无J-Link)。要使能Post Mortem模式,需设置SEGGER_SYSVIEW_POST_MORTEM_MODE = 1。未手动使能Post Mortem模式且使用了J-Link的情况下,将默认使用持续记录模式。
在SEGGER_SYSVIEW_Confdefaults.h中设置事件缓存的大小
#define SEGGER_SYSVIEW_RTT_BUFFER_SIZE 1024
这里的缓存空间大小需要根据你所使用的J-Link的调试接口速率,以及所记录的事件数量来决定,当J-Link速率低,或者记录的事件较多时需要设置更大的缓存空间。使用Single-Shot模式时应加大内存以尽可能的记录更长时间。
(3)在任务创建前调用SystemView的初始化函数
在完成芯片的硬件初始化后,FreeRTOS任务创建前调用SEGGER_SYSVIEW_Conf()来初始化SystemView。
3.连接运行
目标板连接好,下载程序,打开SystemView软件,点击Target选项,选择Recorder Configuration:
完成后,点“Start Recording”即可
注意:
- 当使用AC6编译的时候,会出现Undefined symbol SEGGER_RTT_ASM_WriteSkipNoLock编译错误,把\Middlewares\Third_Party\systemview\SEGGER\SEGGER_RTT_ASM_ARMv7M.S加入工程