Files
openharmony_kernel_liteos_m/README_zh.md
2021-05-06 09:55:59 +08:00

5.8 KiB
Raw Blame History

LiteOS-M内核

简介

OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核具有小体积、低功耗、高性能的特点其代码结构简单主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等分为硬件相关层以及硬件无关层硬件相关层提供统一的HALHardware Abstraction Layer接口提升硬件易适配性不同编译工具链和芯片架构的组合分类满足AIoT类型丰富的硬件和编译工具链的拓展。其架构图如图1所示

图 1 OpenHarmony LiteOS-M核内核架构图

目录

/kernel/liteos_m
├── components           # 可选组件
│   ├── cppsupport       # C++支持
│   └── cpup             # CPUP功能
├── kal                  # 内核抽象层
│   ├── cmsis            # cmsis标准接口支持
│   └── posix            # posix标准接口支持
├── kernel               # 内核最小功能集支持
│   ├── arch             # 内核指令架构层代码
│   │   ├── arm          # arm32架构的代码
│   │   └── include      # 对外接口存放目录
│   ├── include          # 对外接口存放目录
│   └── src              # 内核最小功能集源码
├── targets              # 板级工程目录
├── utils                # 通用公共目录

约束

开发语言C/C++

适用架构当前只适用于cortex-m3、cortex-m4、cortex-m7、risc-v芯片架构。

使用说明

OpenHarmony LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统支持按组件配置、裁剪和拼装按需构建出定制化的产品。详细席信息可以参考官方开源站点编译系统介绍。GCC+Makefile、IAR、Keil MDK等编译方式可以参考社区爱好者贡献的站点。

搭建系统基础环境

在搭建各个开发板环境前需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境。支持Windows开发环境、Linux开发环境、Docker方式、安装包方式等多种方式详细请参考官方站点搭建系统基础环境。需要根据环境搭建文档完成的下述软件的安装Python3.7+、gn、ninja、hb。

对于LiteOS-M内核还需要安装Make构建工具和ARM GCC编译工具链

获取OpenHarmony源码

开发者需要在Linux服务器上下载并解压一套源代码获取OpenHarmony 源码(下载链接)。更多源码获取方式,请见源码获取。获取OpenHarmony完整仓代码后假设检出目录为~/openHarmony

获取示例工程源码

以开发板Nucleo-F767Zi开发板为例演示如何编译运行OpenHarmony LiteOS-M内核工程。在本地目录执行下述命令检出示例代码。

git clone https://gitee.com/harylee/nucleo_f767zi.git

假设检出目录为~/nucleo_f767zi。 执行如下命令把检出工程的device、vendor目录复制到openHarmony工程的相应目录。

cp -r ~/nucleo_f767zi/device/st ~/openHarmony/device/st

cp -r ~/nucleo_f767zi/vendor/st ~/openHarmony/vendor/st

关于检出示例代码的解释,可以参考资料站点板级目录规范。如果需要自行移植开发板,请参考板级系统移植

编译运行

编译运行前,交叉编译工具链bin目录配置到PATH环境变量中或者配置device/st/nucleo_f767zi/liteos_m/config.gni文件中board_toolchain_path宏为交叉编译工具链bin目录。 在OpenHarmony根目录,执行hb set设置产品路径,选择nucleo_f767zi产品,然后执行hb build开启编译。如下:

user@dev:~/OpenHarmony$ hb set

[OHOS INFO] Input code path: # 直接按回车然后选择nucleo_f767zi产品即可

OHOS Which product do you need? nucleo_f767zi@st

user@dev:~/OpenHarmony$ hb build

最终的镜像生成在~/openHarmony/out/nucleo_f767zi/目录中,通过STM32 ST-LINK Utility软件将镜像文件下载至单板查看运行效果。

修改日志

v1.0.1

  1. 删除以下KAL接口: KalThreadGetInfo,KalDelayUs,KalTimerCreate,KalTimerStart,KalTimerChange,KalTimerStop,KalTimerDelete,KalTimerIsRunning,KalTickToMs,KalMsToTick,KalGetMemInfo
  2. 添加部分POSIX接口

v1.0

  1. 首次发布

相关仓

内核子系统

kernel_liteos_m