00. 目录
文章目录
01. 学习目标
移植适配:系统移植及适配
02. 轻量系统芯片移植概述
2.1 概述
本文档从芯片适配的端到端视角,为芯片/模组制造商提供基于OpenHarmony的芯片适配指导。典型的芯片架构,例如cortex-m、risc-v系列都可以按照本文档进行适配移植。
2.2 适配流程
主要开展基于伙伴硬件平台面向OpenHarmony系统的移植适配工作,具体细分为:移植准备、移植内核、移植子系统和移植验证四个环节,见表1芯片适配步骤。
表1 芯片适配步骤
步骤 | 介绍 |
---|---|
移植准备 | 从OpenHarmony开源社区下载代码,并完成编译环境搭建,基于此初步熟悉和了解OpenHarmony的编译构建框架。 |
移植内核 | 将伙伴的SDK移植到OpenHarmony平台,同时根据芯片arch支持情况确认是否需要开展arch的适配工作。 |
移植子系统 | 开展包括启动子系统、文件子系统、安全子系统、通信子系统和外设驱动的移植。 |
移植验证 | 在适配完成之后使用OpenHarmony社区提供的兼容性测试套件对适配的工程进行基本接口的测试验证,同时伙伴需要使用自有测试能力对适配工程开展质量验证活动。 |
图1 业务总体流程
2.3 基本概念
表2 基本概念
名词 | 介绍 |
---|---|
子系统 | 是一个逻辑概念,它由一个或多个具体的部件组成。OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 部件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或部件。 |
部件 | 系统最小的可复用、可配置、可裁剪的功能单元。部件具备目录独立可并行开发、可独立编译、可独立测试的特征。 |
hb | OpenHarmony的命令行工具,用来执行编译命令。 |
kv | 键值对(key-value),描述数据存储的格式。 |
03. 小型系统芯片移植概述
3.1 概述
本文详细介绍如何将OpenHarmony小型系统的linux和LiteOS-A内核移植到新的开发板上,要求读者具有一定的嵌入式系统开发经验。建议先查看入门指导,以了解OpenHarmony软件架构、目录结构、内核子系统和驱动子系统相关知识。当前小型系统已适配的开发板如下表所示:
表1 OpenHarmony小型系统已适配的开发板
开发板 | 内核 | arch | ROM | RAM | 文件系统 | Flash 类型 |
---|---|---|---|---|---|---|
hispark_taurus | LiteOS-A和linux-4.19 | ARM cortex-a7 | 8G | 1GB | VFAT、EXT4 | eMMC4.5 |
hispark_aries | LiteOS-A | ARM cortex-a7 | 16M | 512M | JFFS2 | SPI NOR |
表1中的开发板可作为待移植开发板的参考,当前LiteOS-A和linux-4.19支持的arch、ROM占用、支持的文件系统和支持的Flash类型如下表所示:
表2 OpenHarmony小型系统内核移植信息表
内核 | 支持的arch | ROM | 文件系统 | Flash类型 |
---|---|---|---|---|
LiteOS-A | ARMv7 | > 2M | VFAT、JFFS2、YAFFS2 | SPI NOR、NAND、EMMC |
linux-4.19 | ARM, ARM64、 MIPS、 X86等 | > 5M | VFAT、JFFS2、YAFFS、EXT/2/3/4、NFS等等 | NOR、NAND、EMMC等 |
3.2 编译构建
编译环境搭建
首先请搭建OpenHarmony基础环境,相关操作请参考快速入门环境搭建章节。用户态和LiteOS-A的内核态编译均使用llvm编译器编译,安装方法在搭建基础环境中已提供。若选择移植linux内核,请执行如下命令安装gcc-arm-linux-gnueabi交叉编译工具链,用于编译linux内核态镜像:
sudo apt-get install gcc-arm-linux-gnueabi
3.3 编译构建系统介绍
编译构建流程、编译脚本编写、目录规则、独立编译单个组件、独立编译芯片解决方案等介绍请见编译构建子系统介绍。
04. 标准系统芯片移植概述
参考:一种快速移植OpenHarmony Linux内核的方法