电子说
在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社区】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !