如何用SystemView分析AliOS Things

简介: SystemView 是一个用于分析嵌入式系统性能的工具。SystemView可以分析系统中有哪些中断、任务执行了,以及它们的先后关系。 可以完整的深入观察一个应用程序运行时的行为,它揭示了在任务运行中发生了什么,哪个中断触发了任务切换,中断和任务调用了哪个底层系统的API函数。

1、SystemView简介

SystemView 是一个用于分析嵌入式系统性能的工具。SystemView可以分析系统中有哪些中断、任务执行了,以及它们的先后关系。 可以完整的深入观察一个应用程序运行时的行为,它揭示了在任务运行中发生了什么,哪个中断触发了任务切换,中断和任务调用了哪个底层系统的API函数。
SystemView 可以实时分析和展示数据,帮助用户进行系统调试和问题诊断,尤其是在开发和处理具有多个任务的复杂系统时。

SystemView效果展示:

image.png

2、基础知识

SystemView 由两个部分组成:

SystemView 的PC端程序,用于收集目标板上传的数据信息,并在不同的窗口中显示这些信息。这些记录可以保存到文件中,用于以后的分析。

SystemView 嵌入式端程序可以分析嵌入式系统的行为。它记录嵌入式系统产生的监视数据,它包含了SYSTEMVIEW和RTT。SYSTEMVIEW模块用于收集和格式化监视数据,并将数据传送给RTT。RTT模块可以将数据保存在目标板的buffer中,使用J-Link可以实现连续的记录数据。

如果想用SystemView分析我们OS的性能,我们需要把SystemView相关的代码加到我们的代码工程中一起编译。
在我们的OS代码需要记录的地方添加hook函数,用SystemView的 API代码实现这些hook函数。
当这些函数被运行时SystemView相关的代码会把数据通过Jlink发送到PC机上,PC机上的SystemView 软件会解析这些数据并通过图形化的方式展示出来。

下图展示的是SystemView的工作原理:

image.png

3、物料清单

3.1、HaaS100 硬件

image.png

3.2、J-Link 仿真器

J-Link是德国SEGGER公司推出基于JTAG的仿真器。操作方便、连接方便、简单易学,是学习开发嵌入式开发最好最实用的开发工具。

image.png

4、案例实现

4.1、硬件连接

将HaaS100 SWDIO、SWCLK和地GND共3根线与J-Link仿真器连接。

HaaS引脚编号 HaaS引脚说明 J-link引脚说明 J-link引脚编号
41 SWCLK CLK 9
42 SWDIO TMS 7
40 GND GND 8

硬件连接图:

image.png

4.2、编译AliOS Things

AliOS Things最新代码中默认集成了SystemView的功能,默认是关闭的,只需要打开Trace工具配置开关就可以使用。

打开方式:

在应用package.yaml 文件 depends下添加一行- trace: master。

image.png

参考 helloworld简单示例 中的4.3 编译下载章节,完成helloworld_demo应用的编译和下载。

5、使用SystemView

5.1、下载安装SystemView

根据你所用的操作系统下载对应版本的SystemView,然后进行安装。

5.2、配置SystemView

拷贝SYSVIEW_AliOSThings.txt 文件到PC机SystemView软件安装目录 C:\Program Files\SEGGER\SystemView\Description下。

SYSVIEW_AliOSThings.txt 文件路径:

components/trace/Config/SYSVIEW_AliOSThings.txt

5.3、打开SystemView PC软件

点击菜单栏Target打开 Recorder Configuration。

image.png

参考下图配置参数信息,其中 Address 信息可以从开机串口log 中获取:
例如开机串口log中显示:_SEGGER_RTT:0x34683a1c。

image.png

5.4、开始采集

点击菜单栏Target打开 Start Recording

image.png

界面显示效果如下:

image.png

6、总结

通过上面的操作,相信你已经学会了使用AliOS Things上的SystemView分析工具了。我们可以通过SystemView看到OS内部的运行情况。

无论是对于学习操作系统知识,还是对操作系统进行性能分析,使用SystemView分析工具都是最好的选择。借助SystemView 这款工具能够缩短调试时间,提高开发效率。

开发者支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号。

image.png

更多技术与解决方案介绍,请访问HaaS官方网站https://haas.iot.aliyun.com

相关文章
|
边缘计算 安全 中间件
软件体系结构 - 嵌入式系统(4)- 嵌入式中间件
软件体系结构 - 嵌入式系统(4)- 嵌入式中间件
684 0
|
8月前
|
人工智能 大数据 云计算
OSFP MSA发布液冷标准Cage
2025年4月,阿里云基础设施网络团队提案的分离式OSFP cage,获得OSFP MSA委员会全票通过,合入OSFP MSA Rev 5.2 发布,成为行业首个支持OSFP冷板液冷的cage标准。分离式cage凭借低成本、易组装、易维修、产业链分层解耦的优势,能解决高密AI交换机的光模块液冷难题。
|
前端开发 机器人 Swift
订阅服务:GitHub 开源库更新提醒
订阅服务:GitHub 开源库更新提醒
1981 0
订阅服务:GitHub 开源库更新提醒
|
UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(禁用控制)
在HarmonyOS 5.0中,ArkTS引入了禁用控制属性,允许开发者控制组件的可用状态,提升用户界面的交互性和响应性。本文详细解读了ArkTS中组件的禁用控制属性,并提供了示例代码,展示了如何使用`disabled`属性来禁用按钮等可交互组件,从而防止用户误操作、引导用户流程和提升用户体验。
422 4
|
6月前
|
数据采集 人工智能 监控
ISO 50001能源管理体系标准全解析
ISO 50001是国际公认的能源管理体系标准,为企业提供系统化框架以提升能源效率、减少消耗并推动可持续发展。本文深入解析其核心内容,涵盖标准概述、关键要求、使用指南及认证效益。通过实施该标准,企业可降低运营成本、增强竞争力并树立良好形象。此外,MyEMS开源能源管理系统基于ISO 50001开发,支持多场景能源管理,助力实现碳中和目标。
547 0
|
Ubuntu Linux Shell
C++ 之 perf+火焰图分析与调试
简介 在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,最近了解到Perf这个神器,这里也展开介绍一下如何使用Perf以及如何去画火焰图。 1. Perf 基础 1.1 Perf 简介 perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。利用perf剖析程序性能时,需要指定当前测试的性能时间。性能事件是指在处理器或操作系统中发生的,可能影响到程序性能的硬件事件或软件事件 1.2 Perf的安装 ubuntu 18.04: sudo apt install linux-tools-common linux-tools-4.15.0-106-gen
416 2
|
Linux Windows
ubuntu20.04离线安装rabbitvcs
ubuntu20.04离线安装rabbitvcs
468 0
|
人工智能 算法 机器人
分享57个游戏Python源代码总有一个是你想要的
分享57个游戏Python源代码总有一个是你想要的
413 0
|
Ubuntu Linux 开发工具
Linux操作系统Ubuntu 22.04配置Visual Studio Code与C++代码开发环境的方法
Linux操作系统Ubuntu 22.04配置Visual Studio Code与C++代码开发环境的方法
869 1
|
Dragonfly 算法 安全
RT-Thread快速入门-动态内存堆管理方法
RT-Thread快速入门-动态内存堆管理方法
466 0

热门文章

最新文章