章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)

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

章节3 SystemView PC端应用程序


本节描述SystemView分析和可视化工具。

3.1 介绍

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第1张图片
SystemView 程序
这个SystemView程序是SEGGER SystemView主机端可视化工具软件。它和目标板通过J-Link连接,控制跟踪并读取应用程序的数据。实时分析监视数据并显示在SystemView不同的窗口中。再跟踪停止后,数据可以保存成一个文件以便于后续分析。

如何启动SystemView,请参考前面的章节。

SystemView提供不同的窗口来展示系统的运行,测量时间并分析CPU负载。所有窗口都是同步的,以获得当前选定状态的所有信息。

有关应用程序窗口的描述,请参阅以下部分。

使用SystemView,可以通过监视的数据跟踪系统中发生的情况。

3.2 时间轴窗口(Timeline)

以下时间轴全部表示为Timeline
章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第2张图片
SystemView Timeline

Timeline窗口在一个界面中集中了所有系统信息。它在系统时间线上显示了系统活动(任务、中断、调度器、定时器和空闲)。它显示在被监视的应用程序中使用的所有上下文项,且每行显示一个上下文项。

在鼠标经过上下文项时,会有tip工具显示更多的细节和运行时信息。

在鼠标经过活动上下文时,tip工具提示显示当前事件的详细信息和当前活动的函数(如果可用的话)。

在上下文上面的那个尺子标记了当前活动的时间段范围。

存在的任务会被标记为浅色的背景,提供了从它第一次运行一直到它结束期间的每一次运行。

上下文切换会被现实为连接线,以便于地识别哪些事件导致上下文切换,并且何时发生。

处于ready状态的任务,在开始执行前会被显示在浅灰色的栏中。

上下文是按优先级排序的。第一行显示了一个统一上下文中的所有活动。列表的顶部是中断,用Id来排序的,接下来是scheduler调度器和软件定时器(如果在系统中使用这些的话)。在调度器(和定时器)下面,任务按优先级排序。当没有其他上下文处于活动状态时,底层上下文显示空闲时间。

Timeline是和事件列表Events list同步显示的。在光标(蓝色行)下面的事件是列表中被选中的事件。

光标可以固定在10%到90%的窗口,并在滚动时间线时更新列表中的选择。

可以将事件拖放到事件列表中,来选择事件列表中的相应事件,反之亦然。

时间轴视图可以放大或缩小,来了解整个系统的概况,或者查看事件的确切时间。

要跳转到上下文的下一个或之前的活动,可以用鼠标单击左侧的箭头或者右侧的箭头。

3.3 Events 窗口

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第3张图片
SystemView Events窗口

Events窗口显示系统发送的所有事件,并显示它们的信息。每个事件都有以下几项:

  • 在目标时间或记录时间内的时间戳,可以用微秒或纳秒分辨率显示
  • 创建Events的上下文,即运行的任务。
  • Event描述,和事件类型一起显示,(IRS进入和退出,任务活动,API调用)。
  • Event细节描述事件的参数,即API调用参数。
  • 在列表中定位事件的ID。

Event窗口允许通过列表,跳转到下一个或之前的上下文,或跳转到下一个或之前的类似事件。Timeline和CPU负载窗口同步显示当前选中的Event。

Events列表中的时间戳可以相对于记录的开始或者系统发送的目标系统时间。Event可以设置为跟踪事件的时间引用,以便在Event发生后可以轻松地测量Event。

SystemView包括一个Events筛选器来选择show或hide api、ISRs、系统信息、消息、任务和用户事件。

3.4 Terminal窗口

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第4张图片
SystemView Terminal窗口

终端窗口显示来自目标应用程序的printf输出,以及发出log输出的任务上下文,以及发送消息时的时间戳。双击消息,可以显示出该消息在事件列表中的所有信息。
Timeline窗口显示的是输出的指示器,根据级别排序(错误总是排在顶部)。显示的日志级别可以通过View -> Message Indicators… 来配置。
章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第5张图片
Message Indicator 对话框

SystemView printf的输出是由通过用户应用程序格式化的,也可以所有参数先不格式化,而通过SystemView应用程序进行格式化。

3.5 CPU Load窗口

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第6张图片
CPU Load窗口

CPU load窗口显示了一个周期内上下文占用的CPU时间。CPU负载是用一个使用Timeline当前分辨率的bin的宽度来测量的,因此与缩放级别是同步的。

可以通过选择bin的数量用来测量较短或较长时期的负载。使用一个bin,就可以在整个可见的时间轴上测量CPU负载。

3.6 Context窗口

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第7张图片
Context窗口

Context窗口显示上下文的统计信息(任务、中断、调度器和空闲)。每个上下文项可以通过它的名称和类型来标识。类型包括任务的优先级和中断的ID。(例如,cortex-m的SysTick是中断ID # 15)。

Context窗口信息包括以下内容:

  • 上下文名称和类型。
  • 任务堆栈信息。(如果有的话)
  • 上下文的活动计数。
  • 活动频率。
  • 总的运行时间和最后运行时间。
  • 每秒当前的、最小和最大运行时间,单位是ms和%。

在记录时,上下文窗口是实时更新的,而当前上下文可以通过选择行来指示。

3.7 系统信息(System information)窗口

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第8张图片
系统信息窗口

右上角的窗口显示:

  • 系统的一些信息,是由应用程序发送用来识别该系统的。
  • 记录属性,可由用户设置。
  • 有关任务、中断、SystemView事件和记录吞吐量的统计信息。

系统信息包括应用程序名称、使用的OS、目标设备和时间信息。有关任务开关和中断频率的附加信息提供了系统的快速概览。

章节3 SystemView PC端应用程序 - Segger SystemView使用手册(译文)_第9张图片
记录属性对话框

记录的属性可以由用户在保存时进行设定,并和记录一起存储,并允许在加载后识别记录,以便稍后进行分析。

3.8 事件过滤器 Event Filter

事件窗口对事件进行筛选。这可以用于隐藏中断事件或只显示任务执行。
可以设定不同的组过滤SystemView事件:

  • api - OS或模块生成事件。
  • ISRs - 进出中断。
  • 消息 - 终端输出。
  • 系统事件 - 系统和任务信息。
  • 任务 - 任务执行。
  • 用户事件 - 用户事件启动和停止。

SystemView PRO还提供自定义过滤器,它允许选择显示或隐藏的任何事件。使用curstom过滤器,可以单独选择所有系统事件和注册的操作系统和中间件事件。

3.9 触发模式(Trigger Modes)

当SystemView在连续模式下记录时,记录的事件会实时分析和显示。触发器模式允许在发生特定事件时自动选择事件。

触发器模式可以在工具栏中选择,也可以在任务的右键菜单中选择,并在Timeline窗口中中断。

在手动滚动模式下,选择不会自动更新。在记录时用户可以滚动事件,分析系统。

在自动滚动模式下,自动同步成100ms的时间步伐。会自动选择在最后一个100ms记录的事件。

在连续触发器模式下,用户可以配置上下文(任务或中断),以及触发哪个事件。然后SystemView总是选择最后发生的符合配置条件的事件。

在单触发器模式下,SystemView只选择一次满足配置条件的事件,并自动切换回手动滚动模式。

3.10 界面操作

SystemView可以通过鼠标和键盘来控制,也可以通过菜单来控制。最重要的控件也可在工具栏中访问。

下表描述了SystemView的操作:

记录数据

含义 菜单 快捷键
目标板开始记录 Target->Start Recording F5
停止记录 Target->Stop Recording F9
从系统读取先前的或者单次数据 Target->Read Recorded Data Ctrl+F5
保存记录的数据到一个文件中 File->Save Data Ctrl+S,F2
加载一个记录文件 File->Load Data Ctrl+O,F3
加载一个最近使用的文件 File->Recent Files
加载一个示例记录 File->Sample Recordings
查看/修改记录属性 File->Recording Properties Ctrl+Shift+R

查看

含义 菜单 快捷键
设定/清除当前事件作为时间参考 View->Toggle Reference R
移除所有时间参考 View->Clear References Ctrl+Shift+R
显示目标的时间戳 View->Display Target Time
显示从记录起始所有时间戳 View->Display Recording Time
设定时间戳分辨率为1us View->Resolution:1us
设定时间戳分辨率为100ns View->Resolution:100ns
设定时间戳分辨率为10ns View->Resolution:10ns
设定时间戳分辨率为1ns View->Resolution:1ns
放大 View->Zoom->Zoom In Ctrl++,滚轮向上
缩小 View->Zoom->Zoom Out Ctrl–,滚轮向下
Timeline(时间轴)显示到XX us View->Zoom->XX us Window
Timeline(时间轴)显示到XX ms View->Zoom->XX ms Window
Timeline(时间轴)显示到XX s View->Zoom->XX s Window
在Timeline显示所有记录 View->Zoom->Full Recording
将光标设定到Timeline(时间轴)的10% View->Cursor->Cursor at 10% 1
将光标设定到Timeline(时间轴)的20% View->Cursor->Cursor at 20% 2
将光标设定到Timeline(时间轴)的30% View->Cursor->Cursor at 30% 3
将光标设定到Timeline(时间轴)的40% View->Cursor->Cursor at 40% 4
将光标设定到Timeline(时间轴)的50% View->Cursor->Cursor at 50% 5
将光标设定到Timeline(时间轴)的60% View->Cursor->Cursor at 60% 6
将光标设定到Timeline(时间轴)的70% View->Cursor->Cursor at 70% 7
将光标设定到Timeline(时间轴)的80% View->Cursor->Cursor at 80% 8
将光标设定到Timeline(时间轴)的90% View->Cursor->Cursor at 90% 9
在1个bin中测量CPU负载 View->CPU Load->Single Bin
在10个bin中测量CPU负载 View->CPU Load->10 Bins
在50个bin中测量CPU负载 View->CPU Load->50 Bins
在100个bin中测量CPU负载 View->CPU Load->100 Bins
在200个bin中测量CPU负载 View->CPU Load->200 Bins
显示/隐藏事件列表中的API调用事件 View->Event Filter->Show APIs Shift+A
显示/隐藏事件列表中的中断进出事件 View->Event Filter->Show ISRs Shift+I
显示/隐藏事件列表中的消息(Message) View->Event Filter->Show Messages Shift+M
显示/隐藏事件列表中的系统事件 View->Event Filter->Show System Events Shift+S
显示/隐藏事件列表中的任务活动事件 View->Event Filter->Show Tasks Shift+T
显示/隐藏事件列表中的用户事件 View->Event Filter->Show User Events Shift+U
在事件列表中只显示API调用事件 View->Event Filter->Show APIs only Ctrl+Shift+S
在事件列表中只显示中断进出事件 View->Event Filter->Show ISRs only Ctrl+Shift+I
在事件列表中只显示消息Message View->Event Filter->Show Messages only Ctrl+Shift+M
在事件列表中只显示任务活动事件 View->Event Filter->Show Tasks only Ctrl+Shift+T
在事件列表中只显示用户事件 View->Event Filter->Show User Events only Ctrl+Shift+U
复位所有事件过滤器 View->Event Filter->Reset all Filters Ctrl+Shift+Space
自动滚动到新事件上的最后一项 View->Auto Scroll
选择要在时间轴上显示的消息指示器 View->Message Indicators Ctrl+M
在记录时,手动滚动事件 工具条 Ctrl+1
在记录时,自动滚动事件 工具条 Ctrl+2
在记录时,不停地触发和滚动一个条件 工具条 Ctrl+3
在记录时,单次触发和滚动一个条件 工具条 Ctrl+4
配置触发条件 工具条 Ctrl+T

运行

含义 菜单 快捷键
跳到下一个上下文切换 Go->Forward F
跳到前一个上下文切换 Go->Back B
跳到下一个相似事件 Go->Next [Event] N
跳到前一个相似事件 Go->Previous [Event] P
跳到同一个上下文中的下一个相似事件 Go->Next [Event] in [Context] Shift+N
跳到同一个上下文中的前一个相似事件 Go->Previous [Event] in [Context] Shift+P
打开根据Id跳转到事件的对话框 Go->Go to Event… Ctrl+G
打开根据时间戳跳转到事件的对话框 Go->Go to Timestamp… Ctrl+Shift+G
向前方滚动(未来) Go->Scroll Forward 左键,Ctrl+滚轮向上滚,单击并拖动
向后方滚动(以前) Go->Scroll Back 右键,Ctrl+滚轮向下滚,单击并拖动

窗口

含义 菜单 快捷键
显示/隐藏 事件窗口 Window->Events View E
显示/隐藏 Timeline(时间轴)窗口 Window->Time View T
显示/隐藏 CPU Load(CPU负载)窗口 Window->CPU Load View L
显示/隐藏 Contexts(上下文)窗口 Window->Context View C
显示/隐藏 Terminal(终端)窗口 Window->Terminal View M
显示/隐藏 System information(系统信息)窗口 Window->Sytem View S
显示/隐藏 Log(日志)窗口 Window->Log View O
显示/隐藏 状态栏 Window->Show/Hide Status Bar
显示/隐藏 工具栏 Window->Show/Hide Tool Bar
打开程序首选项对话框 Tool->Preferences Alt+,

帮助

含义 菜单 快捷键
打开SystemView手册(即本手册) Help->SystemView Manual F11
显示SystemView版本信息 Help->About SystemView F12

3.11 命令行选项

SystemView可以通过命令行选项进行控制和配置。在启动记录时要跳过配置对话框,可以通过命令行选项给出目标配置。

C:> SystemView.exe [-usb []]|[-ip ] [-device ] [-if SWD|
JTAG|FINE] [-speed ] [-rttcbaddr ]|[-rttcbrange auto|] [-
single [-port ] [-wait]] [-start|-stop|-read|-quit|-save []|-
load[]]
Command Line Options:
-usb    Connect to J-Link via USB. Parameter: S/N of JLink. (Optional)
(要连接的J-Link S/N号,参数为J-Link的S/N号,可选)

-ip     Connect to J-Link via IP. Parameter: IP or S/N of J-Link.
(通过IP地址连接J-Link,参数为IP地址或者J-Link的S/N号)

-device     Set the target device. Parameter: Device name as supported by J-Link.
(目标设备名,参数为J-Link支持的设备名,一般为芯片型号)

-if         Set the target interface. Parameter: SWD, JTAG,or FINE.
(目标板连接接口。参数为:SWD,JTAG或者FINE)

-speed      Set the target interface speed. Parameter: Speed in kHz.
(目标板接口连接速率。参数为:速率,单位是kHz)

-jtagconf   Set the JTAG scan chain configuration. Parameter: IRPre and DRPRe of the target device.
(设定JTAG扫描链配置。参数为:目标设备的IRPre和DRPRe)

-rttcbaddr      Set the RTT Control Block address. Parameter: Address in hexadecimal.
(RTT控制块地址。参数为:十六进制地址)

-rttcbrange     Set the search range for RTT Control Block. Parameter: auto or ranges as "
". (RTT控制块寻址范围。参数为:auto或者表示成"
".) -single Start SystemView in single instance mode. (单一实例模式下的单启动系统视图。) -port Set local port for single instance mode. Parameter: Port. (设定单实例模式下的本地端口。参数为:端口号) -wait Wait for first instance to return result. (等待第一个实例返回结果) -start Start recording. (启动记录) -stop Stop recording. (停止记录) -read Read recorded data from target. (从目标板读取记录) -quit Quit SystemView. (退出SystemView) -save Save current recording. Parameter: File to save to. (Optional) (保存当前记录到文件,参数为:要保存到的文件名。(可选)) -load Load a recording from file. Parameter: File to (从文件中加载一个记录,参数为:要加载的文件名) load. (Optional)

你可能感兴趣的:(segger)