当前位置: 首页 > ops >正文

如何用SystemView分析AliOS Things

 

1、SystemView简介

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

 

SystemView效果展示:

 

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的工作原理:

 

3、物料清单

 

3.1、HaaS100 硬件

HaaS100 硬件简介

 

3.2、J-Link 仿真器

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

 

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

 

硬件连接图:

 

 

4.2、编译AliOS Things

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

 

打开方式:

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

 

 

参考 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。

 

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

 

 

5.4、开始采集

 

点击菜单栏Target打开 Start Recording

 

界面显示效果如下:

 

6、总结

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

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

 

开发者支持

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

 

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

http://www.xdnf.cn/news/11450.html

相关文章:

  • JVM | 内存调优实战 - MAT工具问题排查与分析
  • Windows Server 2008实现磁盘管理
  • Palm助手:别让你的PalmPhone吃灰
  • VRRP的配置
  • red5 server使用笔记(一)
  • TVM Operator Inventory (TOPI)简介
  • 操作系统(2)操作系统概述
  • WebGIS入门
  • Visual Studio 2005 IDE 技巧和窍门
  • StrictMode总结
  • this.Invoke((EventHandler)(delegate { }); 简解,(有误解恳亲指出
  • 海得服务器虚拟机,海得PLC远程编程调试流程
  • 不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
  • asp八大开源cms比较汇总
  • 基于 .NET 6 开发的英雄联盟插件
  • AS3接口详解
  • 主机屋 linux,如何主机屋中发布网站?
  • tbody的解释及用法
  • 【虹科干货】TWAMP:什么是双向主动测量协议?
  • 科技类 企业网站 自适应整站前端html源码,50个页面,值得学习
  • 什么是静态网页
  • Error:kCFStreamErrorCodeKey=-2102 Domain=kCFErrorDomainCFNetwork Code=-1001 - iOS
  • 【CSS】font-weight设置为500显示不出加粗效果
  • WeX5学习笔记
  • 关于斐波拉契数列(Fibonacci)
  • 基数统计算法--HyperLogLog
  • 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
  • serverlet学习
  • [全程动图]解决Offline Explorer崩溃闪退的问题和一些小技巧(如何下载js、100线程下载)
  • <html> 从0到1的教学实践分享(全网最全)