电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1530|回复: 0
收起左侧

HarmonyOS社区之星-许思维:10年嵌入式系统开发经验与思考

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2021-1-18 11:56:03 | 显示全部楼层 |阅读模式
HarmonyOS社区之星-许思维:10年嵌入式系统开发经验与思考,   

许思维社区之星.jpg (29.3 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

嘉宾介绍:许思维(论坛账号:@xusiwei1236)江苏润和软件股份有限公司高级工程师。从事嵌入式系统软件开发近10年,从事Android系统相关产品研发6年,参与了多款内置NPU的SoC芯片的软件研发工作,参与了多个IoT相关软硬件一体化项目。对智能手机、智能手表、微控制器等资源受限系统上的软件设计、调试、开发深刻实践,对基于MQTT、CoAP等协议的物联网系统架构有一定实践经验。

本期社区之星,我们邀请到许思维老师来为大家分享一些学习、工作经验。





1. 您从事嵌入式软件开发的工作很多年,您对嵌入式软件技术在这段时间的发展历程有何感想?

许思维:随着市场需求的不断增长和扩大,近些年的嵌入式技术的发展已逐步呈现出了多元化、平台化的趋势。多元化表现在——现在相比以前,我们在构建产品时,无论是软件还是硬件都有了很大的选择空间,我想这是因为市场对嵌入式技术的需求量的扩大以及细分市场的扩展产生的必然结果。平台化表现为——相比以前,现在的芯片厂商提供给开发者的SDK的能力有了很大的延申。在以前,芯片厂商可能只会向开发者提供编译工具链,需要开发者自行构建产品方案能力。而现在,很多厂商会直接向开发者提供包括编译工具链、操作系统、中间件等等的平台化能力。

2. 您曾独立完成HiKey970上AI软件栈的全部开发、移植工作。您觉得其中最困难的地方在哪里,又是如何攻克难题的呢?

许思维 :最困难之处在于——HiKey970软件栈和主控芯片麒麟970软件栈的基础软件版本不一致(包括操作系统和其他中间件),以及HiKey970上AI软件栈需要二进制发布。具体地说,就是需要将一个Android系统版本上的编译出来的二进制软件,移植到另一个版本的Android上去,需要保证最终功能可用。 移植过程中,通过编写Python脚本结合binutils分析依赖关系图,理清了整个依赖关系图上的所有模块。并且通过一个开源的ELF编辑库——LIEF,实现了修改二进文件,解决了模块间的二进制兼容性问题。

3. 您在嵌入式产品开发有丰富的经验,到目前为止给您留下最深印象的是哪一个项目,谈谈印象深刻的缘由。

许思维:是一个智能音箱项目。影响深刻在于两点,一方面它的设计本身比较“奇特”,它是智能音箱同时却带有一个圆形的投影屏。另一方面是,它的成本非常高,据说一个产品的物料成本已超过了2000元。最终,这个产品的市场销量并不怎么样。从市场的的角度来说它不能算一个成功的产品,我们现在回过头来可以分析一些原因。一方面,它当时的操作系统是基于Android开放源码项目(AOSP)开发的,并且当时市场上还没有集成NPU的移动芯片。为了保证语音应用能够在系统上流畅运行,它的主控芯片不得不采用高端手机的SoC芯片,所以主控芯片的成本比较高。另一方面,它的投影屏设计,暂且不说算不算是产品定位不明确,但它本身的物料成本也比较高,而且导致产品的硬件和结构设计比较复杂。

4. 您在用鸿蒙开发板进行项目研发时,最大的难点是什么?

许思维:鸿蒙项目虽然已经开源有一段时间了,但是目前能够使用的第三方组件还是比较少。现在实际项目开发过程中,我们通常都会使用一些开源库等组件。但是很多开源项目源码放到鸿蒙源码树上之后,都无法直接编译通过,需要开发者自己动手去解决很多编译问题,适配一些平台相关接口。这不能算是难点,但可以说是一大痛点吧。另外,鸿蒙开源项目OpenHarmony上已有的“工具类”组件太少了,比如没有busybox这样的工具。更没有像Debian等主流Linux发行版那样的包管理器,让开发者可以很方便的安装一些软件。

5. 您对于鸿蒙系统在物联网方面的应用有哪些看法?

许思维:我认为鸿蒙系统在物联网方面的应用天然有几方面优势。第一,依托华为自家海思芯片平台,它本身能够很快有一定数量的市场占有率;这保证了鸿蒙本身会得到持续的演进和发展。第二,它包含了华为在基础软件方面的多年积累,有很多的优秀的设计,可以直接为开发者和设备制造商带来实实在在的产品竞争力,包括操作系统内核、系统中间件等等。第三,鸿蒙背后有着华为广泛的品牌知名度和消费者信任度,使得搭载鸿蒙的产品在市场上更容易被消费者认知和接受。

6. 您觉得想要用鸿蒙开发板进行项目开发需要具备那些专业技能呢?

许思维:这里先做两个假设,第一你的项目是一个产品级的而不只是一个玩具,第二你的项目依赖并使用一部分外设硬件能力。开发一个这样的项目,首先你需要具备一定的软件开发能力,至少能够熟练使用一门高级编程语言,最好是C/C++语言。其次,需要具备一些计算机理论基础知识,包括操作系统、计算机网络、软件工程、数据结构和算法等。另外,你还需要至少具备一些硬件基础知识,至少能够看懂电路原理图,会用万用表和示波器等常见设备。最后,你最好具备一定的英文阅读能力,因为很多硬件手册和软件文档是英文的。当然,这里假设了——你具备一定的分析和解决问题的能力,这是任何工程实践项目的基础。

7. 您认为从业的路上最重要的是什么?您对职场新人有什么话要说?

许思维:做人嘛,最重要的当然是开心,“业的路上”当然也不例外。有人可能会说,从业是只是为了挣钱,这当然是很重要的一方面。但是,如果挣钱的同时也能够做你喜欢的事,那就能最大程度的发挥你的主观能动性。这样一方面会让你在工作中做出更大的成就(这通常会给你的带来更多的回报,包括切实的利益,可能是金钱和名誉等等)。另外一方面也可以最大程度的满足“自我实现”的心理需求,这种心理需求的满足会给你带来持续而长久的快乐,这种快乐是其他方式所无法给予你的。 我想对职场新人说的也是——你从事的工作最好是你喜欢的工作,这样既能够挣钱也能够开心。如果不是,希望你能够敬业,至少做到60分,同时希望工作给你的待遇能够让你满意。

8. 您对我们电子发烧友这个平台有何看法?

许思维:电子发烧友平台在嵌入式软件工程师、硬件工程师、电子爱好者群体有广泛的用户群体,但在互联网和移动互联网开发者中的知名度还相对较弱。希望以后能够多和其他互联网开发平台互动,吸引跟多的其他领域的开发者加入。 另外,电子发烧友网站和App的部分功能上还有待改进,例如社区反馈较多的论坛编辑器对Markdown的支持问题等,视频播放依赖Flash插件但是很多浏览器已经陆续不支持的问题,以及网站部分页面默认不是HTTPS的问题。

许思维老师直播:
Harmony MQTT/CoAP应用指南


基于HiSpark Wi-Fi IoT套件(Hi3861V100) HarmonyOS物联网应用开发实战分享(四)
基于HiSpark Wi-Fi IoT套件(Hi3861V100) HarmonyOS物联网应用开发实战分享(三)
基于HiSpark Wi-Fi IoT套件(Hi3861V100) HarmonyOS物联网应用开发实战分享(二)
基于HiSpark Wi-Fi IoT套件(Hi3861V100) HarmonyOS物联网应用开发实战分享(一)
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表