0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙智联设备开发,这五大法宝你应该拥有

物联网星球 2021-12-08 16:32 次阅读

作者:zhaowenguang,dinglu, 华为高级工程师


Huawei LiteOS是轻量级的开源物联网操作系统智能硬件使能平台,可广泛应用于智能家居、穿戴式、车联网、制造业等领域,使物联网终端开发更简单、互联更加容易、业务更加智能、体验更加顺畅、数据更加安全。

它具有入门简单、开发便捷,轻量级、低功耗、广联接,生态体系完善等优点。提供了若干高效硬件维测能力,通过集成到DevEco Device Tool中,形成了可供开发者使用的调试调优工具,助力开发者在鸿蒙智联设备调试调优过程中更加精准的分析、定位问题。

接下来,我们将重点介绍DevEco Device Tool中集成的一系列调试调优工具。

一、鸿蒙智联设备调试调优面临的挑战

开发者在鸿蒙智联设备调试调优过程中面临如下挑战:

  • 系统镜像文件太大,分析和优化难度较大。
  • 运行态内存紧缺,系统各任务栈大小无法设置。
  • 性能瓶颈无法定位,不能针对性的进行优化。
  • 仅仅靠添加打印和人工分析日志来定位问题效率低下。
  • 内存问题最难定位,缺少检测工具。

如何应对这些挑战,让开发者能高效且准确的完成鸿蒙智联设备调试调优?

二、高效调试调优五大法宝


针对以上挑战,HUAWEI DevEco Device Tool版本中提供了鸿蒙智联设备调试调优五大法宝:镜像分析工具、栈估算分析工具、性能分析工具、可视化Trace工具、轻量级内存检测工具,下面我们将逐一介绍。

注:镜像分析工具和栈估算分析工具已集成于HUAWEI DevEco Device Tool 3.0 Beta1版本中,目前只支持GCC编译的镜像,Clang暂不支持。性能分析工具、可视化Trace工具及轻量级内存检测工具将尽快上线,具体上线时间待官方通知。


1. 镜像分析工具

镜像分析工具,主要解决“资源受限情况下镜像的分析及优化”。通过对编译生成的map文件进行内存占用分析,获取镜像中各模块对ROMRAM的占用大小。


该工具支持查看内存区域总览、内存详细信息、文件大小及模块大小。同时支持一些统计功能,包括排序、过滤、导出表格等操作以及按文件或模块筛选查看的功能。镜像分析结果按照内存区域、详细信息、文件大小和模块大小4个界面进行展示。

  • Memory Regions:内存区域界面以表格的形式展示了每个区域的内存使用情况。如图1所示,Memory Regions包含了起始地址、结束地址、大小、可用内存以及内存占用。

图1 Memory Regions

  • Memory Details:内存详细信息里显示了Section和Symbol的信息。如图2所示,Memory Details通过树状表格展示层级关系、名称、VMA、LMA以及Size

图2 Memory Details

  • File Size:文件大小里展示了.a文件和.o文件的层级关系以及不同section的内存占用。
  • Module Size:模块大小里展示了模块和组件的层级关系以及不同section的内存占用。


使用该工具可帮助开发者快速评估并优化镜像的ROM、RAM使用情况。

2. 栈估算分析工具

栈估算分析工具,主要解决“运行态内存紧缺情况下系统各任务栈的设置”。通过遍历反汇编文件,计算函数的局部栈开销并分析函数之间的调用关系,从而估算出任务的栈大小,为栈溢出分析、栈空间优化提供基础的数据参考。


该工具提供函数调用关系图、函数总的最大栈开销、内部开销,并提供展示函数所在具体位置。栈分析结果按照函数列表和调用关系进行展示。

  • Function List:函数列表界面显示每个函数的函数名称和函数内部栈开销,如图3所示。

图3 Function List


  • Call Graph:调用关系界面显示每个函数的调用关系,包括函数名称、调用深度、函数最大栈开销。


使用该工具可帮助开发者减少爆栈风险,节省内存优化栈空间。

3. 性能分析工具

性能分析工具,主要解决“性能瓶颈的定位及优化”。基于事件采样统计的原理,实现热点函数、热点路径的分析,助力识别性能瓶颈。


该工具提供计数模式及采样模式两种工作模式,采集事件发生的次数及执行时间以及上下文如PC,回溯栈等,用于解析出热点函数与热点路径等信息。同时,该工具还支持3种类型的采样事件:

  • 硬件PMU事件:如cycle,cache等。
  • 软件打点采样:如中断、内存申请等。
  • 高精度周期事件:即按固定周期采样,精度us级。支持热点函数及热点路径的查看。

图4 性能分析工具界面

使用该工具可帮助开发者快速有效识别性能瓶颈,辅助系统性能优化。

4. 可视化Trace工具

可视化Trace工具,主要解决“程序运行不符合预期情况下的问题定位”。通过采用静态代码桩和缓冲区记录的方式,在桩被执行时,获取事件发生的上下文、系统任务等信息,并记录到缓冲区,帮助开发者了解何时何处发生的什么事件。


该工具以图形界面展示事件详情、CPU占比、内存趋势图、任务切换轨迹等信息。下面是Trace 可视化的4个界面:

  • 事件信息视图:如图5所示。使用自然语言解释系统何时(时间戳)何处(在哪个CPU的那个任务中)发生的具体事件。

图5 时间信息视图

  • 任务轨迹视图:如图6所示。以系统时间为纵坐标,展示任务切换的轨迹,如图,不同颜色表示不同的任务,不同色块的迁移对应一次任务切换,点击色块会显示导致任务切换的原因,色块的长度对应其运行的时长。

图6 任务轨迹视图



  • CPU负载视图:如图7所示。统计任意时间段内的任务执行cpu占比,不同颜色对应不同的任务。

图7 CPU负载视图


  • 内存监控视图:如图8所示。以系统时间为横坐标,展示随时间变化的系统内存使用情况。

图8 内存监控视图

使用该工具可帮助开发者清晰的了解系统运行的轨迹,更好的理解系统、辅助定位死机死锁问题。

5. 轻量级内存检测工具

轻量级内存检测工具,主要解决“一键定位内存问题”。该工具基于影子内存映射和标记的原理,可快速解决内存越界访问、释放后访问、多重释放等疑难杂症,并且在检测到错误后实时打印回溯栈。如图9所示,轻量级内存检测工具结合backtrace,快速一键式定位问题代码段。

图9 定位到出错的代码行号

使用该工具可帮助开发者根据回溯栈一键定位到出错的代码行号。

以上就是本期全部内容,相信五大法宝定能让你在鸿蒙智联设备开发的道路上披荆斩棘,赶快点击下方链接下载试用吧!

HUAWEI DevEco Device Tool 3.0 Beta1下载链接:

https://device.harmonyos.com/cn/develop/ide#download_beta

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2606

    浏览量

    65269
  • 鸿蒙智联
    +关注

    关注

    0

    文章

    28

    浏览量

    377
收藏 人收藏

    评论

    相关推荐

    恒流电路设计的三大法宝,让的硬件开发更高效

    恒流电路设计的三大法宝,让的硬件开发更高效 作为硬件研发工程师相信对恒流电路不会陌生,本文介绍下三种恒流电路的原理图。 三极管恒流电路 三极管恒流电路 三极管的恒流电路,主要是利用Q2三极管的基级
    发表于 03-12 09:19

    鸿蒙实战项目开发:【短信服务】

    岗位需要掌握那些核心技术点?为此鸿蒙开发学习必须要系统性的进行。 而网上有关鸿蒙开发资料非常的少,假如你想学好鸿蒙的应用
    发表于 03-03 21:29

    未来从事鸿蒙开发?是否会有前景?

    鸿蒙的未来发展肯定很有前景的,鸿蒙作为新出的国产操作系统。它不仅只是手机操作系统,鸿蒙的出发点就是万物互联。包含原生应用开发、车载、智能设备
    发表于 02-19 21:31

    使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

    随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的
    的头像 发表于 02-02 16:09 376次阅读
    使用 Taro <b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>原生应用 —— 快速上手,<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>指南

    鸿蒙不再兼容安卓,那么鸿蒙开发者是否会大增?

    华为的纯血版鸿蒙已出现。紧接着各大厂商都纷纷加入原生应用开发当中,其中包括支付宝、京东、美团等一线大厂,200 多应用厂商正在加速开发鸿蒙原生应用。
    发表于 01-31 22:17

    【年度精选】2023年度top5榜单——鸿蒙开发经验

    者在实践中总结出来的宝贵财富。如果正在进行鸿蒙系统开发,或者对鸿蒙系统开发感兴趣,这些经验帖都是不可错过的学习资源。快来阅读收藏,提升自己
    发表于 01-10 17:19

    鸿蒙设备-开发板基础学习(BearPi-HM Micro)

    theme: minimalism 每当学习一门新的编程语言或者上手一款新的开发板,在学习鸿蒙设备开发过程中,带大家写的第一个程序,通过这个程序,我们可以对
    发表于 01-08 21:54

    鸿蒙千帆起】《开心消消乐》完成鸿蒙原生应用开发,创新多端联动用户体验

    《开心消消乐》已经完成鸿蒙原生应用开发,乐元素成为率先完成鸿蒙原生应用开发的 20+游戏厂商之一。作为一款经典游戏,《开心消消乐》已经拥有
    发表于 01-03 10:22

    单独使用ADAS1000做心电采集时,CM_IN引脚应该连在哪里?

    单独使用ADAS1000做心电采集时,该芯片上的CM_IN引脚经过一个可编程的开关接进共模放大器上。然而正常的中没有一根叫做共模输入的线,请问这个引脚
    发表于 12-14 07:35

    华为鸿蒙系统

    华为鸿蒙系统(HUAWEI Harmony OS),是华为公司在2019年8月9日于东莞举行的华为开发者大会(HDC.2019)上正式发布的操作系统。 华为鸿蒙系统是一款全新的面向全场景的分布式
    发表于 11-02 19:39

    鸿蒙 OS 应用开发初体验

    什么是 HarmonyOS? HarmonyOS(鸿蒙操作系统)是华为公司开发的一款基于微内核的分布式操作系统。它是一个面向物联网(IoT)时代的全场景操作系统,旨在为各种类型的设备提供统一
    发表于 11-02 19:38

    EMC案例分析:不同接地方案对EFT/B测试的影响

    前面我们介绍过《EMC的三大法宝之一:接地》和《EMC的三大法宝之一:接地(二)》,本次我们就不同接地方案对EFT/B测试的影响进行举例分析。
    的头像 发表于 09-07 09:59 644次阅读
    EMC案例分析:不同接地方案对EFT/B测试的影响

    鸿蒙再出发,携手伙伴共赢空间智能化,创造无限可能

    的体验。 再出发:鸿蒙5大升级,持续提升体验效率质量 为助力伙伴做好产品,鸿蒙持续聚焦体验、效率和质量的提升,对解决方案进行了5大升级,覆盖生态产品
    发表于 08-09 17:14

    Simulink与自动驾驶(ADAS)算法的开发

    自动驾驶软件开发基础的架构,逃不出我们经常所说的三大法宝,感知--- 决策(规划)--- 执行(控制),这三个内容,软件开发基础思路都不一样,且听本屌丝娓娓道来!
    发表于 06-21 17:14 1387次阅读
    Simulink与自动驾驶(ADAS)算法的<b class='flag-5'>开发</b>

    高质量VerilogHDL描述方法

    VerilogHDL可综合的四大法宝:always、if-else、case、assign,本文将围绕这四大法宝来讲述。
    的头像 发表于 06-05 15:38 543次阅读
    高质量VerilogHDL描述方法