DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验
DevEco Device Tool迎来了2.1 Beta1,新版本有很多亮点。在上次“DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验 ”(https://harmonyos.51cto.com/posts/4027)中,我们已经体验了HI3861在Windows平台的编译亮点及工具链管理功能的亮点,这次,来体验一下HI3861开发板在Windows平台的可视化分析这个亮点。润和的HiSpark_Wifi_IoT开发板和小熊派的BEARPI HM_Nano开发板使用的都是海思的Hi3861V100芯片,手头有小熊派的BEARPI HM_Nano开发板,就用它来做体验。
开发者在Hi3861开发板上开发应用程序时,需关注内存的分配和使用情况。DevEco Device Tool 2.1 Beta1新增了可视化分析功能——Profiling可视化分析,通过可视化的界面展示开发板上运行的应用所占系统资源和内存资源的信息,助力开发者查看和分析开发板上各任务堆内存和栈内存的使用情况,从而及时调整各任务的内存和资源分配策略。
先做准备工作:首先创建Profiling可视化分析任务。在原有的应用程序中增加定时查询系统资源信息和内存信息的定时任务后,就可以实现可视化分析。还是以iothardware应用为例。步骤如下:
1. 进入系统盘用户目录下的C:\Users\Administrator\.deveco-device-tool\platforms\hisilicon\profiling\src,复制“app_demo_sysinfo.c“和“app_demo_sysinfo.h“这两个文件到鸿蒙应用程序iothardware的目录下。
2. 这两个文件可以定时查询系统资源信息和内存信息,需要将这两文件添加到应用程序中,并编译烧录到3861开发板中。
(1) 在iothardware目录下的编译文件BUILD.gn文件中添加和更改以下内容:
sources:添加“app_demo_sysinfo.c”源文件参与编译。
include_dirs:添加“app_demo_sysinfo.h”头文件相对路径 "//applications/sample/wifi-iot/app/iothardware",
注意: include_dirs中:需将"//base/iot_hardware/interfaces/kits/wifiiot_lite" 更改为"//base/iot_hardware/peripheral/interfaces/kits",不然后续编译无法通过,提示"iot_gpio.h"文件不存在。这个bug相信后续版本会更正过来的。
(2)在当前程序“led_example.c”中添加头文件 #include "app_demo_sysinfo.h"
(3)在入口函数LedExampleEntry中增加调用 app_demo_heap_task();
(4)按惯例,修改app/BUILD.gn,使iothardware参与编译。
(5)另外,小熊派板载指示灯是GPIO
2,只需将“applications\sample\wifi-iot\app\iothardware\led_example.c”的#define
LED_TEST_GPIO改为2,同时将LED_INTERVAL_TIME_US
由3000000改为6000000,闪烁频率改为为1.2秒一次,更适合人眼观察。
3.上述几处修改完成后,保存。直接在Windows下编译,烧录。重启开发板,板载蓝色指示灯开始闪烁。打开串口,大量信息不断涌现,有时间,内存,任务等信息。
准备工作完成后,就可以畅快淋漓地体验DevEco Device Tool 2.1 Beta1可视化分析的亮点。
在主页Deveco Home点击侧边栏的“Profiling”,Profiling页面点击“Live
capture”,弹出开发板的串口设置选项,无需改动选择默认值就行,继续点击“Capture”,就进入可视化分许页面。注意开发板的串口不能被占用,不然无法进行可视化分析。
Heap:实时统计应用堆内存当前的使用情况和历史峰值情况,横坐标是时间信息,精确到毫秒,每150毫秒数据更新一次。(peak usage :86172 usage : 70988)
Stack:统计应用内各任务的内存使用情况,可以通过任务内存的峰值比例(Peak%)查看具体任务的内存使用情况,以便更合理的分配每个任务的内存大小。LED灯控制的LedTask 任务内存使用比例为72.7%。点击各个任务左边的加号,就可以展示单独任务的可视化。
OS Objects:统计系统资源的使用情况,如定时器(timers)、任务(tasks)、队列(queues)等数量
All in one:统计Heap和Stack的使用情况,实时动态刷新。
同时,Profiling还支持导出当前时间段的统计数据,文件格式为”Excel”和”Json”两种格式,导出后,可以继续用其它方式查看和精确分析。
作者:鸿联
想了解更多内容,请访问51CTO和华为合作共建的鸿蒙社区:https://harmonyos.51cto.com
DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验的更多相关文章
- DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验
DevEco Device Tool迎来了2.1 Beta1,其中的亮点之一是:支持Hi3861开发板的源码在Windows平台编译.带着浓厚的兴趣,第一时间做了一次体验. 首先在官网下载" ...
- Harmony OS 开发避坑指南——DevEco Device Tool 安装配置
Harmony OS 开发指南--DevEco Device Tool 安装配置 本文介绍如何在Windows主机上安装DevEco Device Tool工具. 坑点总结: 国内部分网络环境下,安装 ...
- DevEco Device Tool 3.0 Release 新版本发布,支持多人共享开发
DevEco Device Tool 是面向智能设备开发者提供的一站式集成开发环境,支持 HarmonyOS Connect 的组件按需定制,支持代码编辑.编译.烧录和调试.性能监测等功能,支持 C/ ...
- RK30SDK开发板驱动分析(一):platform device 的概念与注册
做过51单片机或者ARM开发的人都知道,单片机内部都有自己的“片内外设”,比如UART,比如I2C,比如SPI等等... 写单片机程序的时候,比如对于UART的驱动,我们都是在程序中直接写一套函数,来 ...
- 解决微信开发工具上trace无法检测到设备,一直停留在“正在搜索设备...”或者trace panel,choose device老出现device not found
性能 Trace 工具 微信 Andoid 6.5.10 开始,我们提供了 Trace 导出工具,开发者可以在开发者工具 Trace Panel 中使用该功能. 使用方法 PC 上需要先安装 adb ...
- 【资源下载】Linux下的Hi3861一站式鸿蒙开发烧录(附工具)
下载附件 2021春节前夕,华为发布了 HUAWEI DevEco Device Tool 2.0 Beta1,整体提供了异常强大的功能.得知消息后,我在第一时间带着无比兴奋的心情下载尝鲜,但结果却是 ...
- 乘风破浪,遇见华为鸿蒙智能终端系统(HarmonyOS 2),打造面向全场景的分布式操作系统
什么是鸿蒙智能终端系统(HarmonyOS 2) HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化.互联与协同提供了统一的语言.带来简洁,流畅,连续,安全可靠的全场景交互体验. ht ...
- 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...
- 【开发实录】在鸿蒙开发板上使用websocket(移植自librws库)
librws: Tiny, cross platform websocket client C library 相关代码可在下面下载,也可进入librws: 将librws移植到鸿蒙Hi_3861开发 ...
随机推荐
- flutter简易教程
跟Java等很多语言不同的是,Dart没有public protected private等关键字,如果某个变量以下划线 _ 开头,代表这个变量在库中是私有的.Dart中变量可以以字母或下划线开头,后 ...
- 如何对shell脚本中斜杠进行转义?
1.在编写shell脚本时,经常会遇到对某个路径进行替换,而路径中包含斜杠(/),此时我们就需要对路径中涉及的斜杠进行转义,否则执行失败.具体示例如下: 需求描述: 将sjk目录下的test文件中的p ...
- springMVC:校验框架:多规则校验,嵌套校验,分组校验;ssm整合技术
知识点梳理 课堂讲义 学习目标 能够阐述表单验证的分类和区别 能够运用表单验证的常用注解 能够编写表单验证的示例 能够编写SSM整合的应用案例 能够总结SSM整合的步骤 1 校验框架 1.1 入门-视 ...
- [倍增][换根DP]luogu P5024 保卫王国
题面 https://www.luogu.com.cn/problem/P5024 分析 可以对有限制的点对之间的链进行在倍增上的DP数组合并. 需要通过一次正向树形DP和一次换根DP得到g[0][i ...
- vue全局错误捕获
1.errorHandler Vue全局配置 errorHandler可以进行全局错误收集,捕获全局错误抛出,避免前端页面挂掉 export default function errorHandl ...
- Mybatis自定义拦截器与插件开发
在Spring中我们经常会使用到拦截器,在登录验证.日志记录.性能监控等场景中,通过使用拦截器允许我们在不改动业务代码的情况下,执行拦截器的方法来增强现有的逻辑.在mybatis中,同样也有这样的业务 ...
- java进阶(41)--反射机制
文档目录: 一.反射机制的作用 二.反射机制相关类 三.获取class的三种方式 四.通过反射实例化对象 五.通过读属性文件实例化对象 六.通过反射机制访问对象属性 七.通过反射机制调用方法 ---- ...
- Istio 网络弹性 实践 之 故障注入 和 调用重试
网络弹性介绍 网络弹性也称为运维弹性,是指网络在遇到灾难事件时快速恢复和继续运行的能力.灾难事件的范畴很广泛,比如长时间停电.网络设备故障.恶意入侵等. 重试(attempts) Istio 重试机制 ...
- Golang学习的方法和建议
学习方法: 学习方向:go方向是没有问题的 学习方法:多思考多练习,注重语法和关键词练习,切记哑巴学习,会看不会写,切记注意多写 课外学习,数据结构和算法:清华 谭浩强老师(链表.数组.排序...等等 ...
- 翻译:《实用的Python编程》07_04_Function_decorators
目录 | 上一节 (7.3 返回函数) | 下一节 (7.5 装饰方法) 7.4 函数装饰器 本节介绍装饰器(decorator).因为这是一个高级主题,所以我们只做简单介绍. 译注:根据译者个人的猜 ...