SEGGER SystemView无操作系统移植

SEGGER SystemView无操作系统移植_第1张图片

SystemView

SEGGER SystemView可以用来监控RTOS中的线程切换,中断的进入、退出,在没有操作系统的时候可以用来监控中断的执行情况。这一切只需要你连接了JLink,不需要额外的接线。另外还附送一个Terminal,这个Terminal原来叫做JLinkRTT,即 Real Time Terminal,现在可能改名叫Real Time Transfer了,然后基于这个技术开发了SystemView(这些都是我猜的 ),这个在有RTOS的地方可以肯定是非常有用的,不过我现在用在没有OS的地方,监控下中断也挺好嘛,还省了uart接口了。

首先下载SystemView安装 (在Ubuntu下并没有生成.desktop文件,我是从命令行打SystemView命令启动的),然后下载SystemView Target Sources,解压。

SEGGER SystemView无操作系统移植_第2张图片
SystemView Target Sources

然后把Sample/Config目录下的SEGGER_SYSVIEW_Config_NoOS.c文件复制到Config目录下。然后将ConfigSEGGER目录下的所有文件都添加到工程中。
像手册中叙述的一样,在main函数所在的文件添加#include "SEGGER_SYSTEM.h",然后调用SEGGER_SYSVIEW_Conf(),初始化SystemView功能。在中断文件中添加#include "SEGGER_SYSTEM.h",中断进入的地方添加SEGGER_SYSVIEW_RecordEnterISR()退出的地方添加SEGGER_SYSVIEW_RecordExitISR(),要打印信息的地方添加SEGGER_SYSVIEW_Print(const char * s)

然后连接JLink,打开SystemView软件,就可以看到中断信息了。

如果SystemView软件显示找不到RTT control block,可以在map文件中查找_SEGGER_RTT的地址,然后监控的时候不使用自动查找,而使用固定地址,或者指定查找的范围,我是用的查找范围0x2003e000 2048

关于操作系统中的移植可以参考RT-Thread的,segger_debug

你可能感兴趣的:(SEGGER SystemView无操作系统移植)