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

描述

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

 

OpenHarmony

 

内容快照

 

OpenHarmonyOpenHarmony

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

 

OpenHarmony

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

 

OpenHarmony

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

 

OpenHarmony

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

 

OpenHarmony

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

 

OpenHarmony

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

 

技术干货

OpenHarmony系统移植详解

 

 

解耦设计思想
 

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

(1)ARCH部分的代码

(2)SoC部分的代码

(3)board级的代码

OpenHarmony

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相关的代码存放在kernel\liteos_m\arch文件夹中

OpenHarmony

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

 

(2)SoC相关的代码位于:device\soc

OpenHarmony

 

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

OpenHarmony

 

(4)vendor相关代码

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

内容如下:

 

OpenHarmony

 

 

 

移植

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

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

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

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

移植流程如下:

OpenHarmony

 

//1.SOC级别的移植

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

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

(1)板级驱动适配

(2)HAL层实现

(3)XTS测试套

(4)业务功能验证

OpenHarmony

 

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

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

目录规范:

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

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

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

OpenHarmony

 

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

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

全新架构的适配,包括:

(1)MIPS ARCH代码实现

(2)1C300B SOC代码实现

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

移植过程中难点:

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

 

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

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

基于最新的3.2Beta3版本

代码后续全开源

 

移植过程中难点:

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

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

OpenHarmony

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

OpenHarmony

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

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

全部0条评论

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

×
20
完善资料,
赚取积分