SystemView mac正式版是一款应用在苹果电脑端的分析嵌入式系统的工具。SystemView mac可以分析有哪些中断、任务执行了,以及这些中断、任务执行的先后关系。SystemView mac还可以查看一些内核对象持有和释放的时间点,比如信号量、互斥量、事件、消息队列等。这在开发和处理具有多个线程和事件的复杂系统时尤其有效。
{mac1}
SystemView mac软件介绍
SystemView是一个用于嵌入式系统的实时记录和可视化工具,它可以揭示应用程序的真实运行时行为,比调试器提供的系统洞察力要深入得多。当开发和处理由多个线程和中断组成的复杂嵌入式系统时,这一点尤为有效:SystemView可以确保系统按设计执行,可以追踪低效,并显示非预期的交互和资源冲突,关注每一个系统tick的细节。
SystemView mac功能介绍
通过J-Link和SEGGER RTT技术、IP或UART进行记录。
采集数据的实时分析和可视化
系统侵入性最小,可在任何CPU上工作
适用于任何RTOS和裸机系统
标准的SEGGER embOS、emNet和emFile API调用跟踪。
包括uC/OS-III、Micrium OS Kernel和FreeRTOS仪器。
免费用于非商业用途,不受限制
SystemView mac软件特色
系统中发生了什么?
在目标系统上,SystemView记录了运行时发生的事件。这可以是中断、定时器、任务切换和RTOS的调度、API函数调用和返回,或者用户事件和消息。这些事件从目标机中检索出来,在SystemView应用程序中进行分析和可视化,同时目标机继续运行。SystemView中的事件窗口显示记录的事件以及更多信息。
为了降低目标系统的通信开销,它只需要记录基本信息,如 "在最后一个事件发生后,API函数Id x被调用,参数值为y和z,并有n个ticks"。
SystemView对事件的所有信息进行分析并显示。API函数名称及其参数和值
呼叫发生时的记录时间或系统时间。呼叫发生的任务,API调用的持续时间
一个普通事件的长度是4到8个字节,在200MHz的频率下,需要大约1个us来记录。每秒钟10,000个事件,SystemView增加的开销不到CPU时间的1%,而且数据量很容易在记录器的带宽限制内。
事件的时间戳可以精确到1个CPU周期,相当于200 MHz CPU上的5 ns。
系统的驱动力是什么?
大多数嵌入式系统没有线性代码执行。它们实现了定时器的中断和外设的使用,或者可能使用具有多个任务的RTOS。SystemView记录了这样一个系统的运行时行为。
目标在进入和离开中断时、任务准备执行时、任务开始或停止执行时都会产生事件。SystemView应用程序将这些事件可视化,在时间线窗口中绘制出系统时间,并在事件发生的上下文中显示所有其他事件。
这样可以方便地分析任务运行的时间、时间长短和原因,或者在中断时发生了什么。
系统中的问题和低效可以通过这种方式确定。
不正确的任务优先级或优先级反转导致饥饿感
任务间沟通不正确,低效率的延迟和超时,虚假或不必要的中断
系统时间花在哪里?
嵌入式系统的CPU周期是有限的。因此,优化任务的性能以及正确掌握执行顺序和时间分配是很重要的。
通过CPU负载窗口,SystemView可以帮助分析CPU负载高的地方。通过SystemView提供的高负载时间或之前发生的信息,可以调整系统以避免这种可能导致重要任务延迟执行的瓶颈。
运行时窗口提供了有关上下文的运行时分布的额外信息。它可以用来验证每个上下文是否在其时间限制内运行,或者发现上下文意外运行时间过长的情况。
如何跟踪和测量性能?
SystemView提供的事件特别适用于标记目标系统中的某些点。为了方便地测量从A点到B点的持续时间,或者从A点通过B点到C点的持续时间,可以生成标记开始、标记和标记停止事件。SystemView应用程序会自动链接相应的标记,并添加更多信息,如测量的运行时间和运行次数。
如何获取日志输出?
SystemView还包括对消息的记录与记录。简单的字符串可以记录为日志、警告或错误信息。日志功能支持对字符串进行格式化,类似于printf()。由于格式化字符串可能会很耗时,并且需要额外的内存,因此可以推迟到SystemView应用程序中进行。目标系统只需将格式字符串和参数记录在事件中,SystemView应用程序负责格式化字符串并在终端窗口中打印出来。
SystemView mac常见问题
我可以在调试应用程序时使用SystemView吗?
A: 是的。SystemView可以与调试器并行运行并进行连续记录。为了确保可以足够快地读取数据,请将调试器连接配置为高接口速度(>=4MHz)。目前仅在Windows和Linux上支持与目标的并行连接。
我可以将SystemView与我的J-Link LITE或J-Link OB一起使用吗?
A: 是的。SystemView通常可用于任何J-Link。J-Link-LITE和J-Link OB在调试接口速度上受到限制,当RTT缓冲区读取速度不够快,系统产生过多事件时,会导致溢出事件。要获得功能齐全的J-Link,请查看购买选项。
我可以将SystemView与旧的J-Link一起使用吗?
A: 是的。如果J-Link支持目标核心,那么SystemView通常可以与任何J-Link一起使用。较旧的J-Links(V8及更早版本)可能具有有限的RTT功能,当RTT缓冲区读取速度不够快且系统创建的事件太多时,可能会导致溢出事件。要以旧换新或升级您的J-Link,请查看我们的购买选项。
我能在Cortex-A或Cortex-R设备上连续录音吗?
A: 这取决于目标设备。RTT要求在目标运行时对目标进行内存访问。在Cortex-A和Cortex-R上,这是通过AHB-AP完成的。如果目标设备有AHB-AP,则可以使用SystemView连续录制。
我能在ARM7,ARM9上连续录音吗?
A: 不需要。RTT需要在目标运行时对目标进行内存访问。如果您有其中一个设备,则只支持单发和事后检查模式。
我不使用embOS或FreeRTOS,我还可以为我的应用程序使用SystemView吗?
A: 是的。SystemView可用于任何(RT)操作系统。对于任务和操作系统执行记录,您的操作系统可能有连接跟踪/分析检测模块的选项,您可以在其中添加SystemView,否则必须对操作系统进行检测才能执行此操作那么,什么时候如有疑问,请与 您的操作系统供应商联系。如果无法检测操作系统,您仍然可以使用SystemView来记录中断活动和用户事件。
我根本不使用任何操作系统。我还应该使用SystemView吗?
A: 是的。即使没有任何操作系统,SystemView也可以用来记录中断活动,验证中断是否按预期发生,并记录用户事件,这些事件可用于测量模块执行时间。
连续录制时会出现溢出事件。我怎样才能防止这种情况?
A: 当SystemView RTT缓冲区已满时,会发生溢出事件。发生这种情况的原因如下:
J-Link被调试器保持忙碌,无法足够快地读取数据。
目标接口速度太低,无法足够快地读取数据。
应用程序生成的事件太多,无法放入缓冲区。为防止发生这种情况:
最小化目标运行时调试器与J-Link的交互。(即禁用实时监视)
在所有连接到J-Link的实例中选择更高的接口速度。(即调试器和系统视图)
为SystemView选择一个更大的缓冲区。(1-4千字节)
在不使用调试器的情况下独立运行SystemViewer。
我的应用程序在连接SystemView时崩溃。可能出了什么问题?
A: 确保在每个可以创建SystemView事件的上下文(任务、中断、调度程序)中,SystemView有大约200字节的堆栈可用。
我无法在SystemView中开始录制。可能出了什么问题?
A: 可能的原因是:
J-Link或target未连接:确保所有连接正常。
目标未运行:请确保目标正在运行,否则连接可能会失败或找不到RTT控制块。
系统视图模块未配置:确保系统视图模块包含在应用程序中,并在应用程序开始时调用SEGGER_SYSVIEW_Conf()。
J-Link软件已过期:请确保安装了最新的J-Link软件和文档包。
SystemView找不到RTT控制块,如何配置?
A: RTT控制块的自动检测只能在初始化后的已知RAM地址范围内完成。确保开始录制时应用程序启动已运行。如果RTT控制块超出所选设备的已知范围,请选择“地址”并输入RTT控制块的确切地址,或者选择“地址范围”并输入RTT控制块所在的地址范围。
我收到无效的数据包。怎么会这样?
A: 无效数据包通常由目标系统生成,原因有两个:1。SystemView在录制事件时无法正确锁定,并被另一个事件中断。在这种情况下,请确保为您的设备正确配置了SEGGER_SYSVIEW_LOCK()和SEGGER_RTT_LOCK()。2系统进入休眠或低功耗模式,J-Link无法正确访问RAM以读取SystemView缓冲区。当调试探针连接到sy时,建议不要使用WFI或任何低功耗模式
SystemView mac更新日志
1.修改用户提交bug
2.添加新功能
5119下载小编推荐:
在您使用SystemView mac之后,我想您可能还会需要{recommendWords}等软件,快来{zhandian}下载使用吧!