3.概述

Huawei LiteOS 是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。基础内核支持任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,更好地支持低功耗场景,支持 Tickless 机制,支持定时器对齐。

Huawei LiteOS 自开源社区发布以来,围绕 NB-IoT 物联网市场从技术、生态、解决方案、商用支持等多维度使能合作伙伴,构建开源的物联网生态,目前已经聚合了 50+ MCU 和解决方案合作伙伴,共同推出一批开源开发套件和行业解决方案,帮助众多行业客户快速的推出物联网终端和服务,客户涵盖抄表、停车、路灯、环保、共享单车、物流等众多行业,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。

背景介绍

Huawei LiteOS是轻量级的实时操作系统,是华为IoT OS。

图 1 Huawei LiteOS Kernel的基本框架图
3.概述 - 图1

Huawei LiteOS基础内核是最精简的Huawei LiteOS操作系统代码,包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,可以单独运行。

Huawei LiteOS Kernel的优势

  • 高实时性,高稳定性。
  • 超小内核,基础内核体积可以裁剪至不到10K。
  • 低功耗。
  • 支持功能静态裁剪。

各模块简介

任务

提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度。支持任务按优先级高低的抢占调度及同优先级时间片轮转调度。

任务同步

  • 信号量:支持信号量的创建、删除、申请和释放等功能。
  • 互斥锁:支持互斥锁的创建、删除、申请和释放等功能。

硬件相关

提供中断、定时器等功能。

  • 中断:提供中断的创建、删除、使能、禁止、请求位的清除等功能。
  • 定时器:提供定时器的创建、删除、启动、停止等功能。

IPC通信

提供事件、消息队列功能。

  • 事件:支持读事件和写事件功能。
  • 消息队列:支持消息队列的创建、删除、发送和接收功能。

时间管理

  • 系统时间:系统时间是由定时/计数器产生的输出脉冲触发中断而产生的。
  • Tick时间:Tick是操作系统调度的基本时间单位,对应的时长由系统主频及每秒Tick数决定,由用户配置。
  • 软件定时器:以Tick为单位的定时器功能,软件定时器的超时处理函数在系统创建的Tick软中断中被调用。

内存管理

  • 提供静态内存和动态内存两种算法,支持内存申请、释放。目前支持的内存管理算法有固定大小的BOX算法、动态申请SLAB、DLINK算法。
  • 提供内存统计、内存越界检测功能。

支持的核

表 1 Huawei LiteOS开源Kernel支持的核

支持的核

芯片

Cortex-A7

Hi3516A V300

Hi3516C V500

Hi3516E V200

Hi3516E V300

Hi3516D V200

Hi3516D V300

Hi3518E V300

Hi3536

Hi3556 V100

Hi3556 V200

Hi3559 V200

Hi3716M V430

Cortex-A17

Hi3536

Hi3556 V100

Hi3559 V100

Cortex-A53

Hi3519A V100

Hi3556A V100

Hi3559A V100

Hi3796M V200

Hi3798C V200

Hi3798M V200

Hi3798M V300

Hi3798M V310

Cortex-M0

STM32L053R8Tx

ATSAMD21G18A

ATSAMD21J18A

ATSAMR21G18A

EFM32HG322F64

MKL26Z128

MKW41Z512

LPC824M201JHI33

MM32L073PF

nRF51822

NANO130KE3BN

Cortex-M3

K3V3,K3V3+

STM32F103RB

ATSAM4SD32C

EFM32GG990F1024

GD32F103VCT6

GD32150R8

GD32F190R8

GD32F207VC

MM32F103CBT6

MM32L373PS

Cortex-M4

STM32F411RE

STM32F412ZG

STM32F429ZI

STM32F429IG

STM32L476RG

EFM32PG1B200F256GM48

GD32F450IK

CC3220SF

LPC54114j256BD64

nRF52840

nRF52832

NUC472HI8AE

ATSAMG55J19

ADuCM4050LF

Cortex-M7

K3V5

STM32F746ZG

ATSAME70Q21

ARM9

Hi3516C V200

Hi3516C V300

Hi3516E V100

Hi3518E V200

Hi3911

使用约束

  • Huawei LiteOS提供一套Huawei LiteOS接口,同时支持CMSIS接口,它们功能一致,但混用CMSIS和Huawei LiteOS接口可能会导致不可预知的错误,例如用CMSIS接口申请信号量,但用Huawei LiteOS接口释放信号量。
  • 开发驱动程序只能用Huawei LiteOS的接口,上层APP建议用CMSIS接口。