【OpenHarmony技术峰会】生态与互联分论坛 | 连志安:指令集架构适配OpenHarmony

电子说

1.3w人已加入

描述

           

在2月25日刚刚圆满闭幕的首届开放原子开源基金会OpenHarmony技术峰会(2023)生态与互联分论坛上,润和软件旗下子公司江苏润开鸿数字科技有限公司(简称:润开鸿)生态技术总监连志安发表了题为《OpenHarmony生态共建——多种指令集架构芯片适配》的主题演讲,详细解读了指令集架构适配OpenHarmony的技术发展路线。

           

 

鸿蒙

 

内容快照

 

 

鸿蒙鸿蒙

硬件生态是整个OpenHarmony的基石,有了更多的指令集支持、更多的芯片支持、更多的开发板、更多的设备才能带来更多的用户,从而实现整个生态的繁荣发展。

 

鸿蒙

截至峰会启幕,已通过OpenHarmony兼容性测评的商用设备和开发板均达到100+款,适配支持的芯片平台已有40多款,指令集架构已覆盖ARM、RISC-V、MIPS、LoongArch等主流架构。

 

鸿蒙

OpenHarmony芯片生态作战地图:分为芯片指令集、芯片架构、芯片厂家、开发板、驱动框架、驱动外设等。

 

鸿蒙

在OpenHarmony生态委员会的指导下,已成立芯片&开发板工作组,润和软件作为组长单位,牵头制定了OpenHarmony芯片适配标准以及OpenHarmony芯片适配规划路标,与各生态伙伴/厂商携手共拓OpenHarmony南向生态,为硬件开发各环节上的伙伴企业进行技术赋能与支持。

 

鸿蒙

作为Dev-Board-SIG组长单位,润和软件组织输出《OpenHarmony富设备/瘦设备核心板规范》,持续引领ARM、RISC-V、LoongArch等丰富的指令集架构适配,为基于OpenHarmony的应用开发提供丰富多样硬件设备承载,当前在社区中已发布的OpenHarmony开发板已达40+款。

 

鸿蒙

基于已适配芯片设计研发的OpenHarmony商用设备已覆盖多个主流行业,商业生态繁荣度初显。

 

技术干货

 

OpenHarmony系统移植详解

 

 

解耦设计思想

OpenHarmony系统的移植部分的代码解耦做得非常好。从代码的设计理念上来看,移植主要是三部分的内容:

(1)ARCH部分的代码

(2)SoC部分的代码

(3)board级的代码

鸿蒙
  • ARCH也就是架构,例如ARM架构、RISC-V架构等。

  • SoC是具体芯片,例如STM32、海思等,一个架构可以有多个芯片。

  • Board是具体开发板,例如3861有润和的开发板、也有小熊派的开发板。

通常来说,相关架构的不同SoC,应该是共用一套ARCH代码,不需要为每个SoC都重新写一遍ARCH代码,可以增加代码的复用。

相同SoC的不同board开发板,也应该共用一套SoC代码即可,板卡之间的代码差异应该放到board中。

 

基于如上设计,我们移植的类型可以分为三部分:

(1)ARCH移植:全新的架构级别的移植

(2)SoC移植:已支持的架构做SoC级别的移植

(3)board级别的移植:只针对开发板做少量移植

移植的难度也是ARCH最难,SoC较难、board较简单。

 

//相关代码

 

(1)ARCH相关代码

ARCH相关的代码存放在kernelliteos_march文件夹中

鸿蒙

可以看到目前已支持的架构有ARM(M3、M4、M33、M7、ARM9)、csky、risc-v、xtensa。

 

(2)SoC相关的代码位于:devicesoc

鸿蒙

 

(3)board相关的代码位于:device/board

鸿蒙

 

(4)vendor相关代码

除了以上代码之外,还有厂商配置相关代码,这一部分主要是用于编译系统、HDF配置等,路径为:vendor

内容如下:

 

鸿蒙

 

 

 

移植

确定移植的系统类型:L0、L1、L2,需要移植哪些部分,整体可以分为三大类移植

(1)ARCH级别的移植:全新的架构级别的移植

(2)SOC级别的移植:已支持的架构做SoC级别的移植

(3)Board级别的移植:只针对开发板做少量移植适配

移植流程如下:

鸿蒙

 

//1.SOC级别的移植

如果所选主板的芯片架构已经在OpenHarmony的ARCH中已有,则只需要移植BSP即可。

BSP系统移植包含以下几步操作:

(1)板级驱动适配

(2)HAL层实现

(3)XTS测试套

(4)业务功能验证

鸿蒙

 

//2.轻量系统ARCH级别的移植

对于轻量系统现在不支持的架构的芯片,则需要移植ARCH。

目录规范:

  • liteos-m中主要分为ARCH、Components、Kernel、Utils等模块。

  • 硬件相关的代码放在arch目录中,其余为硬件无关的代码。

  • arch/include 目录定义通用的文件以及函数列表,该目录下的所有函数在新增arch组件时都需要适配,详见每一个头文件

鸿蒙

 

//3.案例-MIPS架构适配轻量系统

实现基于MIPS架构的芯片适配轻量系统

全新架构的适配,包括:

(1)MIPS ARCH代码实现

(2)1C300B SOC代码实现

(3)智龙开发板相关功能

移植过程中难点:

任务上下文切换:涉及MIPS 汇编代码

 

//4.轻量系统ARCH级别的移植

实现基于LoongArch架构的芯片适配小型系统

基于最新的3.2Beta3版本

代码后续全开源

 

移植过程中难点:

(1)LoongArch是一个全新的架构

(2)小型系统代码存在芯片、架构耦合

鸿蒙  

基于LoongArch龙芯架构的新品发布

 鸿蒙

此次OpenHarmony技术峰会上,润和软件发布了HH-SCDAYU400、HH-SCDAYU401、HH-SCDAYU410三款基于LoongArch龙芯架构的OpenHarmony开发平台

 

更多适配案例详见OpenHarmony官方gitee主页

地址:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/Readme-CN.md

 

“以技术赋能开源共建,持续发挥生态引领作用”。润和软件将深入贯彻“2+N”行业战略(深耕金融、能源“2”大行业,广泛赋能智慧城市、医疗、教育、工业等“N”个行业),围绕行业场景落地不断夯实软硬件底座,推动应用创新,助力体验提升;吸引更多企业及个人开发者融入生态、参与共建,持续为OpenHarmony繁荣发展贡献力量。

   


原文标题:【OpenHarmony技术峰会】生态与互联分论坛 | 连志安:指令集架构适配OpenHarmony

文章出处:【微信公众号:HiHope社区】欢迎添加关注!文章转载请注明出处。


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分