作为 OpenAtom OpenHarmony(简称“OpenHarmony”)社区单 BLE 的轻量级设备,汇顶科技 GR551x 系列低功耗蓝牙开发板已经顺利通过 OpenHarmony 兼容性工作组的兼容性测试审核,正式完成合入 OpenHarmony 主干分支(master 分支)。
李东山来自深圳市汇顶科技股份有限公司,是 BLE 产品开发部的一名研发工程师,从 2021 年 9 月开始承担 BLE SoC GR551x 接入 OpenAtom OpenHarmony 生态的适配任务。通过采访,他向我们详细分享了项目开发过程中的难点和经验,以下为采访整理:
作为开发领域知名的技术大牛,您最初为什么会选择加入 OpenHarmony 生态、参与开源共建呢?您认为,OpenHarmony 项目最吸引人的点在哪里?
OpenHarmony 是一款面向全场景、全连接、全智能时代的分布式操作系统,它面向万物互联,非常契合我们 BLE SoC 产品应用方向,选择加入 OpenHarmony 生态,希望能一起参与共建 OpenHarmony 生态系统,为促进万物互联和千行百业的繁荣发展贡献我们的一份力量。
OpenHarmony 代码遵循 Apache 2.0 等商业友好的开源协议,所有企业、机构与个人均可基于 OpenHarmony 开源代码,结合自身优势,去做各领域的操作系统发行版及终端产品。
您在什么时候组建了 OpenHarmony 开源项目团队?通过多久完成了 GR5515 Starter Kit 开发板的适配,核心代码已合入主干,现在被 OpenHarmony PMC 委员会推选为“代码月度贡献之星”,真的太了不起了!您方便给我们介绍一下这个产品吗,或者这段经历吗?这么短时间达成了这样好的效果,请问您的“秘诀”都有哪些呢?
我们是在 2021 年的 9 月开始投入资源适配 OpenHarmony。经过两个多月的努力,将我们首款 Bluetooth LE 轻量设备芯片 GR551x 系列 SoC 适配上 OpenHarmony,2021 年 11 月 18 日顺利通过 OpenHarmony 兼容性测评, 并于 2022 年 1 月 7 日正式合入 OpenHarmony 主干。
(GR5515 Starter Kit 适配代码仓库)
能够在短时间内完成开发板适配工作不仅是因为我们生态小组小伙伴们齐心协力,通力配合, 还得益于 OpenHarmony 完备的开发平台和工具链,优秀的代码框架,丰富的文档资源。刚开始我们的仓库在 SIG 上孵化,两次毕业答辩评审后代码合入主干,非常感谢社区的老师们给予了很多专业指导和支持。
能开发出这么一个优秀的产品,将核心代码合入主干,您和您的团队一定付出了很多。可以请您给我们分享一下,开发这个产品的整个过程,包括前期、中期、后期,您们具体都做了哪些工作,投入了多少人力和资源吗?
开发板适配前期,我们对 OpenHarmony 轻量系统进行了学习和调研,充分评估可行性后开始尝试适配。万事开头难,刚开始适配 V1.1.2-LTS 版本,从搭建开发环境、熟悉构建系统、移植第一行代码,解决了很多难题,也踩过很多坑。终于,两周后系统在我们的 SoC 上稳定运行起来了。
项目中期我们升级到了 V3.0.0-LTS,3.0 版本引入了许多新特性,我们开始适配 HDF 驱动、BLE 接口、文件系统、低功耗等,并通过了兼容性测评。
项目后期我们与主干 master 版本对齐,master 版本引入 board 与 soc 分离的先进设计理念,我们对代码框架进行了大量重构优化,代码架构和规范都符合要求后,代码合入 OpenHarmony 主干。
汇顶科技非常看好 OpenHarmony,我们持续投入人力在该项目上,目前基本完成了首款 BLE Soc GR5515 芯片的适配工作,未来我们也会对适配的代码进行持续优化和维护,同时也会积极参与轻量系统的图形显示和 BLE IoT 方向的共建工作。
在整个开发进程中,您和您的团队遇到过哪些技术上或其他方面的难题?这些难题又是如何被逐一解决?在这些难题被解决的过程中,您总结了哪些宝贵的经验 or 教训?
在开发初期,网上几乎没有对 ARM 架构的轻量系统移植适配的指导文档,构建环境也很复杂,可参考的开发板就 3 块,对于我这种刚接触 OpenHarmony 的小白来说,不知道怎么去加入我们的代码,不知道如何构建,差点被遇到的各种困难“劝退”。好在 OpenHarmony 自带了一款基于 RSIC-V 架构的开发板样例,通过深入研究其编译框架和适配细节后,我们将 SDK 移植到 OpenHarmony 并构建成功。
OpenHarmony 对 ARM 和 RSIC-V 架构支持已经非常全面,Cortex-M 内核相关的 arch 移植 liteos-m 已经帮我们做好,移植一款新的开发板只需重点聚焦在编译构建、BSP 移植、XTS 测试、业务功能开发上。
加入 OpenHarmony 生态以来,您最大的惊喜是什么?或者有哪些具体的收获?
自从加入 OpenHarmony 生态以来,我切身感受到它发展的如此之快,从当初的 1.0 版本迭代到如今的 3.0 版本,每个版本都会带来许多实用的更新,开发板越来越多,文档也越来越丰富,社区交流日渐活跃,开发者参与共建也越来越容易。
我也一直在持续学习 OpenHarmony,学习过程中了解到了很多代码架构上的先进理念,为自己平时的开发工作带来了很大的帮助,我也一直坚持通过博客分享我的学习经历和开源移植案例。
期待未来 OpenHarmony 哪些方面能够得到改善、提供更多支持?
OpenHarmony 经过一年多的快速发展,编译构建、代码架构、文档支持、社区建设方面都做得非常优秀。我个人期待,OpenHarmony 其配套 IDE DevEco Device Tool 能早点普及,推动众多的开发板适配并支持,这样有利于给开发者和终端客户带来更便捷的体验。
OpenHarmony 目前仍处在开发探索阶段,很多共建单位和生态伙伴还不清楚开源项目的玩法,或不知该如何着手进行开发。可以请您给大家分享一条,您认为最重要或最值得分享的心得吗?
开源项目的输出将为开发者提供更多的学习途径,点亮众多开发者前行的道路。我在开发过程中遇到了很多技术上的困难,寻求不到别人的帮助时,通过研读别人的开源代码找到了灵感和思路,开源其实也是一种互相学习,共同进步的高效途径。
开放性问题,可以畅所欲言,请问您还有话想告诉大家?
非常感谢 OpenHarmony,为我们提供了如此优秀的操作系统,很高兴自己能够参与开源共建,为开源贡献出自己的一份微薄力量。从刚开始的“懵懂”小白,跟着 OpenHarmony 一起成长,虽然过程中充满了挑战,但也收获很多。我真切感受到 OpenHarmony 的迅猛发展,希望有更多企业、开发者一起参与共建 OpenHarmony 繁荣生态。