近期,软通动力控股子公司鸿湖万联(江苏)科技发展有限公司(以下简称“鸿湖万联”)将致远开发板正式合入OpenAtom OpenHarmony(以下简称“OpenHarmony”)社区主干。作为将开发板正式合入OpenHarmony主干的代码提交者,我将和大家分享我们团队在研发过程中的故事与心得,希望能给广大开发者一些参考。
Q1
关于我以及我所在的团队
大家好,我是鸿湖万联的高级技术专家李星。作为鸿湖万联南向芯片适配的“排头兵”,我主要负责整个南向团队进行多平台芯片移植适配方案的设计与实施,包含ARM架构下的瑞芯微系列、全志系列等。
Q2
致远开发板所具有的特性及优势
鸿湖万联致远开发板,基于全志ARM架构主频为1.5GHz的T507芯片,采用了“核心板+底板”结构形式,并搭载四核Cortex-A53处理器,集成G31GPU,拥有丰富的音视频接口的芯片。它具有低功耗、高性能、运行稳定等优点。另外,T507芯片具有高性能的外部存储器接口和嵌入式的GPU,支持OpenGL ES 3.2/2.0/1.0、Vulkan 1.1以及OpenCL 2.0,有效保证了系统运行的高稳定性。它的工业级运行支持的温度在-45℃到80℃之间,可以运行标准OpenHarmony操作系统,适用于车载终端、电力、医疗、工业控制、物联网、智能终端等领域,而且使用寿命更长。
Q3
关于将致远开发板合入OpenHarmony主干的契机
谈及致远开发板正式合入OpenHarmony主干的契机,离不开公司的战略规划和与开放原子开源基金会的合作。鸿湖万联作为软通动力全资子公司,全面承接集团OpenHarmony战略,积极投入到OpenHarmony生态共建中,包含南向生态共建与北向生态共建。在南向生态共建中,我们希望引入更多平台的芯片进行适配和升级,基于全志T507芯片的致远开发板在我们的商显领域、交通领域均有对应的行业应用。开放原子开源基金会业务发展部了解到我们在做智能售货机的项目,并且选用的是T507的芯片,于是双方快速达成一致,经过多轮沟通,确定了路标和计划。最终,在公司的支持和团队的努力下,我们完成了致远开发板合入主干这一很有意义的事情。
Q4
致远开发板合入主干后会对OpenHarmony有哪些积极作用
T507作为低功耗、高性能、运行稳定的芯片,广泛应用于车载信息娱乐系统以及汽车360度全景可视系统中。致远开发板合入主干首先让T507芯片拥有了OpenHarmony系统的开发案例,让以前使用T507的开发者可以快速加入到OpenHarmony生态中,降低了开发者在T507上使用OpenHarmony的壁垒,免去了适配的过程,可以直接做产品相关的应用开发。 其次,致远开发板合入主干能够极大推动OpenHarmony在智能家居、智能医疗、智能终端等物联网领域的应用落地。对于开发者而言,在做OpenHarmony开发项目时,会有更多的芯片和开发板的选择。对于用户而言,OpenHarmony系统的逐步完善也会让用户的使用体验越来越好。此外,未来,我相信会有越来越多的厂商去适配OpenHarmony系统,能让越来越多的人了解并且相信OpenHarmony,这是致远开发板合入主干对OpenHarmony的积极作用。
Q5
参与了核心代码合入主干的全过程,我有以下经验和收获
将核心代码合入主干,首先得保证代码要能符合合入的标准,所以我们从代码设计阶段开始,对代码的架构设计、安全规范和编译规范,以及在编码过程中对各种语言的编码规范都实行了高标准、严要求,一项一项进行调整。基于这样的高标准,让我们整个团队在研发过程中一直严格要求自己,对我们以后的研发工作大有裨益。
Q6
在将致远开发板合入主干的过程中,技术难题是最大的挑战
在进行致远开发板合入主干这个项目时,OpenHarmony主干更新比较快,整个团队每天都需要解决不同的技术难题,比如版本不兼容的问题,为了能够紧跟OpenHarmony的最新特性,我们的开发一直是以主干为核心的。最大的挑战和难关主要在将OpenHarmony移植到致远开发板上过程中,比如移植前期调试终端乱码、调试工具HDC无法使用,以及后期的驱动适配,包括音频驱动、WiFi驱动、蓝牙驱动等问题。最具挑战性的是后期的驱动适配,因为OpenHarmony采用的是HDF驱动框架,和以前我们所接触的Linux驱动框架有很大的差异,这就需要我们驱动移植的相关人员以最短的时间学习和掌握HDF驱动框架,并完成相关驱动的适配。为了不影响项目进程,我们对团队分工做了细化和调整,充分发挥各位研发人员的专长,将研究新的显示框架和在旧有的基础上做其他适配等多项任务同时进行。最终,在大家齐心协力的努力下,一起迎难而上,如期完成了致远开发板合入主干这一项目。
Q7
如何攻克GPU适配这一技术难题
在适配完外设驱动后,播放视频过程中会有卡顿,而且CPU占用率比较高,为了配合我们的商显项目,保证视流畅播放并降低CPU占用率,在OpenHarmony上使能GPU就特别重要。 开始厂商提供的是4.19内核GPU的补丁文件,补丁文件涉及四万行左右的代码量,代码量较大且目前社区主推5.10内核,导致大量的补丁无法直接使用。听取厂商意见以及内部讨论评估后,我们参考4.19的补丁文件直接在5.10上进行使能适配。适配难度比较大,涉及以下内容: (1)内核相关结构函数适配,主要包含一些结构体成员名称的改变,比如5.10中将mmap_sem改为mmap_lock,将vm_insert_pfn改为vmf_insert_pfn等 (2)平台代码的适配主要涉及平台驱动的编译,修改相关Kbuid、Kconfig、Makefile等文件。 (3)解决驱动运行时的错误,包含中断命名的修改,相关的有MMU、JOB、GPU等。以及mmap报错,mmap失败时的错误码提示内存已用完,经过定位排查,解决办法是在缺页trap时需要调用vmf_insert_pfn。 经过前期的驱动适配和后期修改运行过程中的报错,我们终于攻克GPU适配这一技术难题。
Q8
关于丰富OpenHarmony生态的愿景
起初,移植OpenHarmony到扬帆开发板上,是公司丰富OpenHarmony生态的预研类项目。在移植过程中,我们团队被OpenHarmony以面向全场景、全连接、全智能时代的目标所吸引。这个过程中也学到了很多,比如OpenHarmony的启动恢复子系统、图形子系统、媒体子系统下的音视频模块等。而且我们在移植过程中也输出了一些总结性的文档,有《HDC适配说明》、《基于HDF框架的WiFi适配说明》、《基于alsa-lib的audio适配说明》,同时,也参考了OpenHarmony的相关文档,收获颇多。作为OpenHarmony生态的参与者和共建者,鸿湖万联始终以OpenHarmony为基础持续进行技术研发和创新,致远开发板合入主干不仅展现出了鸿湖万联其持续创新的研发能力,更是丰富了OpenHarmony的生态。 目前我们根据自身的发展需要,已经投入到网络切换功能的研发中,我们希望更多的开发者和厂商能够加入进来,为OpenHarmony贡献自己的力量。
-
芯片
+关注
关注
453文章
50299浏览量
421328 -
开发板
+关注
关注
25文章
4920浏览量
97110 -
OpenHarmony
+关注
关注
25文章
3649浏览量
16089
原文标题:李星:如何攻克技术难题,完成全志T507芯片的移植与适配?
文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论