> 文档中心 > LiteOS-M内核

LiteOS-M内核


简介

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

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

目录结构如下

/kernel/liteos_m├── arch   # 内核指令架构层目录│   ├── arm# arm 架构代码│   │   ├── arm9  # arm9 架构代码│   │   ├── cortex-m3    # cortex-m3架构代码│   │   ├── cortex-m33   # cortex-m33架构代码│   │   ├── cortex-m4    # cortex-m4架构代码│   │   ├── cortex-m7    # cortex-m7架构代码│   │   └── include      # arm架构公共头文件目录│   ├── csky      # csky架构代码│   │   └── v2    # csky v2架构代码│   ├── include   # 架构层对外接口存放目录│   ├── risc-v    # risc-v 架构│   │   ├── nuclei# 芯来科技risc-v架构代码│   │   └── riscv32      # risc-v官方通用架构代码│   └── xtensa    # xtensa 架构代码│└── lx6   # xtensa lx6架构代码├── components    # 可选组件│   ├── backtrace # 栈回溯功能│   ├── cppsupport# C++支持│   ├── cpup      # CPUP功能│   ├── dynlink   # 动态加载与链接│   ├── exchook   # 异常钩子│   ├── fs # 文件系统│   ├── lmk# Low memory killer 机制│   ├── lms# Lite memory sanitizer 机制│   ├── net# Network功能│   ├── power     # 低功耗管理│   ├── shell     # shell功能│   └── trace     # trace 工具├── drivers# 驱动框架Kconfig├── kal    # 内核抽象层│   ├── cmsis     # cmsis标准接口支持│   └── posix     # posix标准接口支持├── kernel # 内核最小功能集支持│   ├── include   # 对外接口存放目录│   └── src# 内核最小功能集源码├── targets# 板级工程目录├── testsuites    # 内核测试用例├── tools  # 内核工具├── utils  # 通用公共目录

约束

开发语言:C/C++;

适用架构:详见目录结构arch层。

动态加载模块:待加载的共享库需要验签或者限制来源,确保安全性。

使用说明

OpenHarmony LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。本文主要介绍如何基于gn和ninja编译LiteOS-M工程,GCC+gn、IAR、Keil MDK等编译方式可以参考社区爱好者贡献的站点。

搭建系统基础环境

在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境,详细介绍请参考官方站点开发环境准备。开发者需要根据环境搭建文档完成环境搭建。

OpenHarmony轻内核编码规范

Wiki - Gitee.com

哈尔滨心理咨询网