7系统内部系统组件禁止休眠_重磅,华为开源物联网操作系统!
概述Huawei LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。本项目属于华为物联网操作系统Huawei LiteOS源码,现有基础内核支持任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,更好地支持低功耗场景,支持tickless机制,支持定时器对齐。同时提供端云协同能力,集成了LwM2M、CoAP、mbedtls...
概述
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的基本框架图
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
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐
所有评论(0)