章节1 概述 - Segger SystemView使用手册(译文)

本文博客链接:http://blog.csdn.net/bjr2016,作者:bjr2016,未经允许不得转载。

1 概述


本节描述SEGGER SystemView的一般使用。

章节1 概述 - Segger SystemView使用手册(译文)_第1张图片

1.1 SEGGER SystemView 是什么?

 SystemView 是一个用于虚拟分析嵌入式系统的工具包。SystemView 可以完整的深入观察一个应用程序的运行时行为,这远远超出一个调试器所能提供的。这在开发和处理具有多个线程和事件的复杂系统时尤其有效。

SystemView 由两个部分组成:

SystemView 的PC端程序,用于收集目标板上传的信息。

SystemView 嵌入式端程序可以分析嵌入式系统的行为。它记录嵌入式系统产生的监视数据,并在不同的窗口中显示这些信息。这些记录可以保存到文件中,用于以后的分析或者编写文档。

监视数据是通过调试接口来记录的,因此使用SystemView不需要额外增加硬件(甚至不需要增加额外的引脚)。它可以允许在任何一个包含调试接口的系统上。

使用一个SEGGER J-Link和实时传输技术(RTT),SystemView可以连续的记录数据,并实时的分析和展现这些数据。
SystemView可以分析中断、任务和软件定时器已经执行了多久,何时和它们使用了多长时间。它揭示了在某个命令中的发生了什么,哪个中断触发了任务切换,中断和任务调用了哪个底层RTOS的API函数。
可以执行周期精确的分析,甚至可以对用户功能进行计时。
SystemView应该用来验证嵌入式系统预期的行为,可以发现问题与不足,比如不必要的、虚假的中断,和意料之外的任务变化。它可以被用于任何调用SystemView事件函数的实时或非实时的操作系统,但是也支持Non-Instrumented的RTOS或者不带RTOS的应用,它可以分析中断执行时间,以及像时间关键的子程序。

如何工作?

需要在目标板上调用一个小的软件模块,它包含了SYSTEMVIEW和RTT。SYSTEMVIEW模块用于收集和格式化监视数据,并将数据传送给RTT。RTT模块可以将数据保存在目标板的buffer中,使用J-Link可以实现连续的记录数据,用户可以选择覆盖式记录或者不覆盖记录方式(阻塞方式)。
目标板可以某些场合中调用SYSTEMVIEW函数来监视事件,例如中断开始和中断结束时。SystemView 将这些事件以及一个可配置的高精度时间戳一起保存到RTT的目标缓冲区中。时间戳可以精确到1个CPU周期(在200MHz的CPU上是5ns)。

目标板资源需求

RTT和SYSTEMVIEW模块的ROM需求小于2 KB。在典型的系统中,大约600 字节的RAM就足以实现使用J-Link进行连续记录。对于系统触发的记录,缓冲区大小取决于记录的时间以及事件的数量。不需要其他硬件。对于典型的事件记录,CPU只需要低于1us的时间来处理(基于200 MHz Cortex-M4 CPU),也就是说,在系统每秒10000个事件的系统中,只需要不到1%的开销。由于调试接口(JTAG,SWD,FINE)用于传输数据,因此不需要额外的引脚。

哪些CPU可以使用SystemView?

SystemView可以用在任何CPU上。连续实时的记录可以在任何支持J-Link RTT技术的系统上进行。RTT需要在程序执行过程中通过调试接口读取内存,通常支持ARM Cortex-M0、M0+、M1、M3、M4处理器以及所有的Renesas RX设备。
对于那些不支持RTT技术的系统中,当系统halt时,可以手动读取缓冲区的内容,这允许填充缓冲区并后续分析之前保存的单段记录,以捕获最新的记录数据。当记录开始和停止时,系统可以触发单段记录或者后期记录。

添加到目标系统需要多少工作量?

不是很多。少量的文件需要加到makefile文件或者工程文件中。如果操作系统支持SystemView,那么只需要调用一个函数。在一个没有RTOS或者non-instrumented RTOS的系统中,需要将两行代码添加到应该监视的每个中断函数中。这些工作就是全部了,一共不超过几分钟就能完成。

1.2 SEGGER SystemView 程序包

下面这几节描述了如何安装SEGGER SystemView程序包及其内容。

1.2.1 下载及安装

SEGGER SystemView 程序包提供了Windows、OS X和Linux系统下安装程序以及可移植存档。

从 https://www.segger.com/systemview.html下载最新的程序包。

为了能够使用该程序包,需要安装配套的J-Link软件和文档包。可以在https://www.segger.com/jlinksoftware.html找到下载地址和说明。

1.2.1.1 Windows

安装包

从http://www.segger.com/systemview.html下载最新的安装包并执行。安装向导会指引完成安装。
安装完成之后,可以通过Windows开始菜单目录或者文件管理器访问程序包内容。

可移植压缩包
从http://www.segger.com/systemview.html下载最新的压缩包,解压到文件系统的任意目录。
这种方式不需要安装,解压后就可以直接使用程序包内容。

1.2.1.2 OS X

安装包

从http://www.segger.com/systemview.html下载最新的pkg包并执行。安装向导会指引完成安装。
安装完成之后,可以通过Launchpad访问程序包内容。

1.2.1.3 Linux

系统需求

要在Linux上运行SystemView,必须安装Qt V4.8库。

安装包

从http://www.segger.com/systemview.html下载最新的DEB包或者RPM包并执行。安装向导会指引完成安装。

可移植压缩包

从http://www.segger.com/systemview.html下载最新的存档,解压到系统的任意目录。
这种方式不需要安装,解压后就可以直接使用程序包内容。

1.2.2 程序包内容

SEGGER SystemView程序包 包含了用于应用程序跟踪的一切内容 — 主机可视化SystemView程序和用于快速容易使用的示例跟踪文件。
嵌入式应用程序中包含的目标源代码可以作为附加包单独下载。
包含有用于SEGGER软件(如embOS)下快速使用的额外代码。

下表列举了软件包内容。

SystemView 软件包

文件 描述
./SystemView.exe SystemView分析和可视化软件
./Doc/UM08027_SystemView.pdf 本文档
./Description/SYSTEMVIEW_*.txt SystemView API描述文件
./Sample/OS_IP_WebServer.SVDat 用于一个web服务器应用的SystemView示例跟踪文件
./Sample/OS_Start_LEDBlink.SVDat 一个简单embOS应用程序的SystemView示例跟踪文件
./Sample/uCOS_Start.SVDat 一个简单的uC/OS-III应用程序的SystemView示例跟踪文件

目标板源码包

文件 描述
./Src/Config/Global.h 用于SystemView的全局数据类型
./Src/Config/SEGGER_RTT_Conf.h SEGGER RTT配置文件
./Src/Config/SEGGER_SYSVIEW_Conf.h SEGGER SYSTEMVIEW配置文件
./Src/Sample/embOS 用于embOS的SystemView初始化和配置
./Src/Sample/FreeRTOSV8 用于FreeRTOS V8的SystemView初始化和配置
./Src/Sample/FreeRTOSV9 用于FreeRTOS V9的SystemView初始化和配置
./Src/Sample/MicriumOSKernel 用于Micrium OS Kernel的SystemView初始化和配置
./Src/Sample/NoOS 用于裸机系统的SystemView初始化和配置
./Src/Sample/uCOS-III 用于uC/OS-III的SystemView初始化和配置
./Src/SEGGER/SEGGER.h 全局类型和通用功能函数
./Src/SEGGER/SEGGER_RTT.c SEGGER RTT模块源码
./Src/SEGGER/SEGGER_RTT.h SEGGER RTT模块头文件
./Src/SEGGER/SEGGER_SYSVIEW.c SEGGER SYSTEMVIEW模块源码
./Src/SEGGER/SEGGER_SYSVIEW.h SEGGER SYSTEMVIEW模块头文件
./Src/SEGGER/SEGGER_SYSVIEW_ConfDefult.h SEGGER SYSTEMVIEW配置回调
./Src/SEGGER/SEGGER_SYSVIEW_Int.h SEGGER SYSTEMVIEW内部头文件

1.3 SystemView PRO

SystemView可以在任何商业或者非商业目标系统中免费使用。它包含了全面分析系统行为的所有功能。

SystemView PRO扩展了这些功能,以提供更好的系统分析方法。首先,它提高了100万条事件的限制,并允许无限制的记录。此外,它还附带了一些新特性,比如自定义过滤器,可以轻松地搜索列表中的事件。

1.3.1 许可

SystemView PRO许可是单用户许可方式。
许可可以储存在J-Link,之后这个J-Link扮演了USB Dongle的作用。这样,只需要简单的插入你的J-Link就可以在你的任何电脑上使用SystemView PRO,例如你的台式机、家用笔记本。
要了解更多有关于SystemView PRO和许可选项,请联系 [email protected]

你可能感兴趣的:(segger)