概述

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

同时提供端云协同能力,集成了LwM2M、CoAP、mbedtls、LwIP全套IoT互联协议栈,且在LwM2M的基础上,提供了AgentTiny模块,用户只需关注自身的应用,而不必关注LwM2M实现细节,直接使用AgentTiny封装的接口即可简单快速实现与云平台安全可靠的连接。

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

LiteOS Kernel的优势

  • 高实时性,高稳定性。

  • 超小内核,基础内核体积可以裁剪至不到10K。

  • 低功耗。

  • 支持功能静态裁剪。

背景介绍

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

图 1  Huawei LiteOS Kernel的基本框架图

6b369a5352a62b7a687799866a8019fe.png

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

各模块简介

任务

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

任务同步

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

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

硬件相关

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

  • 中断:提供中断的创建、删除、使能、禁止、请求位的清除等功能。

  • 定时器:提供定时器的创建、删除、启动、停止等功能。

IPC通信

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

  • 事件:支持读事件和写事件功能。

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

时间管理

  • 系统时间:系统时间是由定时/计数器产生的输出脉冲触发中断而产生的。

  • Tick时间:Tick是操作系统调度的基本时间单位,对应的时长由系统主频及每秒Tick数决定,由用户配置。

  • 软件定时器:以Tick为单位的定时器功能,软件定时器的超时处理函数在系统创建的Tick软中断中被调用。

内存管理

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

  • 提供内存统计、内存越界检测功能。

LiteOS的代码目录结构

关于代码树中各个目录存放的源代码的相关内容简介如下:

一级目录 二级目录 三级目录 说明
arch arm cortex-a A核内存mmu、异常处理、时钟等相关代码,新增
cortex-m M核中断、调度、tick相关代码
common arm核公用的cmsis core接口
include arm头文件
common cmsis头文件
msp430 msp430架构中断、调度、tick相关代码
build 预留的一个空的makefile
components connectivity agent_tiny agent_tiny端云互通组件,包括公共头文件、示例代码、客户端实现代码、操作系统适配层代码
lwm2m lwm2m协议实现
nb_iot LiteOS NB-IoT API
mqtt MQTT开源协议实现
ota 固件升级代码
fs 文件系统,含VFS、spiffs、ramfs、kifs、fatfs、devfs
lib libc LiteOS libc优化
libsec 安全函数库
cJSON c语言json库
log 日志等级控制
net at_frame LiteOS AT框架API
at_device AT设备适配层
lwip/lwip_port lwip驱动及OS适配代码
lwip/lwip-2.0.3 lwip协议实现
lwip/ppp_port lwip协议ppp端口支持
sal socket通讯支持
security mbedtls/mbedtls_port mbed TLS的OS适配代码
mbedtls/mbedtl-2.6.0 mbed TLS协议实现
doc 此目录存放的是LiteOS的使用文档和API说明等文档
demos kernel API 供开发者测试LiteOS内核的demo示例,此目录存放的是内核功能测试用的相关用例的代码
include API功能头文件存放目录
agenttiny_lwm2m lwm2m协议 demo
agenttiny_mqtt mqtt 协议demo
dtls_server dtls协议demo
fs 文件系统demo
ipv6_client Ipv6协议demo
nbiot_without_atiny NB_IoT demo
include components各个模块所依赖的头文件
kernel base core LiteOS基础内核代码,包括队列、task调度、软timer、时间片计算等功能
om 与错误处理相关的文件
include LiteOS内核内部使用的头文件
ipc LiteOS中task间通讯的相关接口,包括事件、信号量、消息队列、互斥锁等
mem LiteOS中的内核内存管理的相关代码
misc 内存对齐功能以及毫秒级休眠sleep功能
mp 预留多CPU支持
sched 任务调度支持
include LiteOS开源内核头文件
extended tickless tickless定时机制实现
osdepends liteos cmsis liteos cmsis_os 1.0和2.0支持
targets Cloud_STM32F429IGTx_FIRE 野火STM32F429(ARM Cortex M4)开发板对应的编程及开发工程源码包
Mini_Project 最小工程
NXP_LPC51U68 NXP ARM Cortex M0 ENC28J60以太网LiteOS SDK端云demo
STM32F103VET6_NB_GCC F103(ARM Cortex M3)内核移植demo,NB-IoT,GCC环境
bsp 通用板级支持包
test 内核及系统库的参考测试代码

项目地址

官方地址:http://www.liteos.org

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐