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. POJ_1227 Jack Straws 【二维平面判两线段相交】

    一 题面 POJ1127 二 分析 在平面几何中,判断两线段相交的方法一般是使用跨立实验.但是这题考虑了非严格相交,即如何两个线段刚好端点相交则也是相交的,所以还需要使用快速排斥实验. 这里参考并引用 ...

  2. python之Click的简单应用

    一.介绍 Click是一个Python包,用于以可组合的方式创建漂亮的命令行界面,只需要很少的代码.这是"命令行界面创建工具包".它具有高度可配置性,但具有开箱即用的合理默认值. ...

  3. python--requests模块详解

    GET请求 首先构造一个最简单的get请求,请求的链接为http://httpbin.org/get import requests 2 r = requests.get("http://h ...

  4. 回顾反射机制Method

    package com.demo.service; public interface SayHello { void sayHello(String name); } 接口实现类 package co ...

  5. windows与远程linux服务器进行文件传输

    在学习pwn时找到了http://pwnable.kr这个网站,很多题目通过ssh连接, ssh otp@pwnable.kr -p2222 (pw:guest) 连接脚本: pwn_ssh=ssh( ...

  6. io流(io流的引入与文件字节流)

    io流的引入与文件字节流 io流:就是一根吸管,插入后,可以操作目标文件 io流的分类: 按方向:输入,输出 按大小:字节,字符 按处理方式: 处理流:"管套着管" --- 流结合 ...

  7. java例题_32 取一个整数a从右端开始的4~7位

    1 /*32 [程序 32 左移右移] 2 题目:取一个整数 a 从右端开始的 4-7 位. 3 */ 4 5 /*分析 6 * 从右端开始的第四位相当于原数除以1000后结果的最后一位数, 7 * ...

  8. 简易计算器实现:while循环+switch语句

    个人练习: 写一个计算器,要求实现加减乘除功能,并且能循环接收新的数据,通过用户交互实现(即Scanner对象) 用到了 while循环 switch语句,实现了数据的循环输入并计算!!!!妙啊!!! ...

  9. [BFS]翻币问题

    翻币问题 Description 有N个硬币(6<=N<=20000)全部正面朝上排成一排,每次将其中5个硬币翻过来放在原位置,直到最后全部硬币翻成反面朝上为止.试编程找出步数最少的翻法, ...

  10. java面试一日一题:java线程池

    问题:请讲下java中的线程池 分析:在面试中经常问到线程池的问题,要掌握其基本概念,使用方法,注意事项等,引申下tomcat中默认的线程数是多少 回答要点: 主要从以下几点去考虑, 1.为什么要使用 ...