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”两种格式,导出后,可以继续用其它方式查看和精确分析。

源程序和导出Excel文件下载

作者:鸿联

想了解更多内容,请访问51CTO和华为合作共建的鸿蒙社区:https://harmonyos.51cto.com

DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验的更多相关文章

  1. DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验

    DevEco Device Tool迎来了2.1 Beta1,其中的亮点之一是:支持Hi3861开发板的源码在Windows平台编译.带着浓厚的兴趣,第一时间做了一次体验. 首先在官网下载" ...

  2. Harmony OS 开发避坑指南——DevEco Device Tool 安装配置

    Harmony OS 开发指南--DevEco Device Tool 安装配置 本文介绍如何在Windows主机上安装DevEco Device Tool工具. 坑点总结: 国内部分网络环境下,安装 ...

  3. DevEco Device Tool 3.0 Release 新版本发布,支持多人共享开发

    DevEco Device Tool 是面向智能设备开发者提供的一站式集成开发环境,支持 HarmonyOS Connect 的组件按需定制,支持代码编辑.编译.烧录和调试.性能监测等功能,支持 C/ ...

  4. RK30SDK开发板驱动分析(一):platform device 的概念与注册

    做过51单片机或者ARM开发的人都知道,单片机内部都有自己的“片内外设”,比如UART,比如I2C,比如SPI等等... 写单片机程序的时候,比如对于UART的驱动,我们都是在程序中直接写一套函数,来 ...

  5. 解决微信开发工具上trace无法检测到设备,一直停留在“正在搜索设备...”或者trace panel,choose device老出现device not found

    性能 Trace 工具 微信 Andoid 6.5.10 开始,我们提供了 Trace 导出工具,开发者可以在开发者工具 Trace Panel 中使用该功能. 使用方法 PC 上需要先安装 adb  ...

  6. 【资源下载】Linux下的Hi3861一站式鸿蒙开发烧录(附工具)

    下载附件 2021春节前夕,华为发布了 HUAWEI DevEco Device Tool 2.0 Beta1,整体提供了异常强大的功能.得知消息后,我在第一时间带着无比兴奋的心情下载尝鲜,但结果却是 ...

  7. 乘风破浪,遇见华为鸿蒙智能终端系统(HarmonyOS 2),打造面向全场景的分布式操作系统

    什么是鸿蒙智能终端系统(HarmonyOS 2) HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化.互联与协同提供了统一的语言.带来简洁,流畅,连续,安全可靠的全场景交互体验. ht ...

  8. 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南

    NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...

  9. 【开发实录】在鸿蒙开发板上使用websocket(移植自librws库)

    librws: Tiny, cross platform websocket client C library 相关代码可在下面下载,也可进入librws: 将librws移植到鸿蒙Hi_3861开发 ...

随机推荐

  1. 常用开发库 - MapStruct工具库详解

    常用开发库 - MapStruct工具库详解 MapStruct是一款非常实用Java工具,主要用于解决对象之间的拷贝问题,比如PO/DTO/VO/QueryParam之间的转换问题.区别于BeanU ...

  2. python-3-2

    一 切片 1.切片是list取值的一种方式 列子: nums = ['a','b','c','d','e','f','h','g','k','l','kk','nn','ee'] 取b和c元素出来 p ...

  3. 《逆向工程核心原理》——TLS回调函数

    pe中TLS(thread local storage)中函数的执行时机早于入口函数(entry point), 相关结构: // // Thread Local Storage // typedef ...

  4. IgniteMe -高校网络信息安全运维挑战赛

    1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 void *v3; // eax 4 int v4; ...

  5. 【Makefile】2-Makefile的介绍及原理

    目录 前言 概念 Chapter 2:介绍 2.1 makefile的规则 2.3 make 是如何工作的 ** 2.5 让 make 自动推导 2.8 Makefile 里面有什么 2.9 Make ...

  6. [图论]剑鱼行动:kruskal

    剑鱼行动 目录 剑鱼行动 Description Input Output Sample Input Sample Output 解析 难点 代码 Description 给出N个点的坐标,对它们建立 ...

  7. MySQL-索引简介

    一.索引是什么? 索引是本质是一种数据结构,索引的目的在于提高查询效率.[排好序的快速查找的数据结构] 每个节点包含索引键值和一个指向对应数据记录物理地址的指针. 索引往往以索引文件的形式存储在磁盘. ...

  8. 02-MySQL主要配置文件

    一.二进制日志log-bin 作用:主从复制 二.错误日志 log-err 默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息 三.慢查询日志log 默认关闭,记录查询的sql语句,如果开启 ...

  9. Tk 的基本概念-组件—Tkinter 教程系列03

    Tk 的基本概念-组件-Tkinter 教程系列03 前言 Tk 系列教程: Tkinter教程系列01--引言和安装Tk Tkinter教程系列02--第一个真正的 GUI 程序 通过上一节的程序实 ...

  10. 集合Set添加多个元素

    方一 Integer[] x=new Integer[]{4,6,9,10}; Set<Integer> set = new HashSet<>() ; Collections ...