参考:

  1. 【野火】物联网操作系统 LiteOS 开发实战指南
  2. Huawei LiteOS | 中文网

1 内核指南

1.1 LiteOS架构

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

如下图所示为LiteOS系统架构框图

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

1.2 特点

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

1.3 模块简介

1.3.1 任务

1.3.2 任务同步

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

1.3.3 IPC通信

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

1.3.4 时间管理

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

1.3.5 内存管理

1.4 支持芯片

支持的核 芯片
Cortex-M0 STM32L053R8Tx、ATSAMD21G18A、ATSAMD21J18A、ATSAMR21G18A、EFM32HG322F64、MKL26Z128、MKW41Z512、LPC824M201JHI33、MM32L073PF、nRF51822、NANO130KE3BN
Cortex-M3 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 STM32F746ZG、ATSAME70Q21

1.5 使用约束

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

1.6 LiteOS常见句柄介绍

1.6.1 任务句柄

  • 任务句柄(任务ID)是一个指针UINT32),但是定义的时候是按照普通变量定义(起指针作用),而非指针变量
  • 任务句柄用于指向一个任务,当任务创建好之后,它就具有了一个任务句柄
  • 我们在操作某个任务时,都需要这个任务句柄
  • 如果是自身的任务操作自己,那么这个句柄可以为NULL

1.6.2 内核对象句柄

  • 内核对象

    • 信号量
    • 消息队列
    • 事件标志组
    • 软件定时器
  • 要使用这些内核对象,必须先创建(调用对应函数),创建成功后会返回一个相应的句柄
  • 内核对象句柄实际上就是一个指针,后续我们就可以通过这个句柄操作这些内核对象
  • 内核对象说白了就是一种全局的数据结构,通过这些数据结构我们可以实现任务间的通信任务间的事件同步等各种功能,这些功能的实现,我们是通过调用这些内核对象的函数来完成的

LiteOS 内核指南相关推荐

  1. Huawei LiteOS 开发指南

    Huawei LiteOS是轻量级的实时操作系统,是华为IOT OS. https://github.com/LiteOS/LiteOS 官网:https://www.huawei.com/minis ...

  2. LiteOS内核源码分析:静态内存Static Memory

    本文分享自华为云社区<LiteOS内核源码分析系列十二 静态内存Static Memory>,原文作者:zhushy . 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包 ...

  3. LiteOS内核源码分析:动态内存之Bestfit分配算法

    本文分享自华为云社区<LiteOS内核源码分析系列十三 动态内存Bestfit分配算法>,原文作者:zhushy . 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括内 ...

  4. LiteOS内核源码分析:消息队列Queue

    本文分享自华为云社区<LiteOS内核源码分析系列十 消息队列Queue>,原文作者:zhushy . 队列(Queue)是一种常用于任务间通信的数据结构.任务能够从队列里面读取消息,当队 ...

  5. LiteOS内核源码分析:位操作模块

    摘要:本文带领大家一起剖析了LiteOS位操作模块的源代码,代码非常简单,参考官方示例程序代码,实际编译运行一下,加深理解. 本文分享自华为云社区<LiteOS内核源码分析系列五 LiteOS内 ...

  6. harmonyos2.0三大技术特点,科普干货|漫谈鸿蒙LiteOS-M与HUAWEI LiteOS内核的几大不同...

    摘要:鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?一起来对比一下文件吧! HarmonyOS系统 HarmonyOS是一款"面向未来".面向全场景(移动办公.运 ...

  7. 科普干货|漫谈鸿蒙LiteOS-M与HUAWEI LiteOS内核的几大不同

    摘要:鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?一起来对比一下文件吧! HarmonyOS系统 HarmonyOS是一款"面向未来".面向全场景(移动办公.运 ...

  8. LiteOS内核源码分析:任务LOS_Schedule

    本文分享自华为云社区<LiteOS内核源码分析系列六 -任务及调度(5)-任务LOS_Schedule>,原文作者:zhushy . 本文我们来一起学习下LiteOS调度模块的源代码,文中 ...

  9. LiteOS内核源码分析:任务栈信息

    本文分享自华为云社区<LiteOS内核源码分析系列六 -任务及调度(2)-任务LOS_Task>,原文作者:zhushy . 我们介绍下LiteOS任务栈的基础概念.LiteOS任务栈是高 ...

最新文章

  1. 【译】最大限度地降低多线程 C# 代码的复杂性
  2. 操作系统课设--具有优先级的线程调度
  3. php 邮箱开发教程,php开发中表单验证邮箱及URL的教程
  4. linux-进程杀死的操作
  5. 闭式系统蒸汽管径推荐速度_暖通丨空调水系统的设计
  6. Vue 学习笔记(2)Vue 生命周期、组件
  7. (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
  8. linux 挂载硬件设备
  9. matlab关于向量的基本操作
  10. 汇编语言指令用法大全
  11. Linux安装libmodbus库
  12. excel常用函数汇总 Excel公式大全 excel函数应用500例
  13. 使用百度 AI 进行智能写诗 智能春联
  14. 企业传播需要拥有的5个风险意识
  15. 物联网智能家居ppt
  16. 2018.11.05._PYTHN_DJANGO_CLASS 144~CLASS147
  17. b365老掉线 h3c路由器_H3C路由器PPP连接的常见故障及解决方法
  18. 《平成的超级偶像金牌舔狗》之mmdetection,paddle detection安装,demo跑通,训练跑通,保姆级教学
  19. JavaScript函数-创建参数个数不限数量的函数
  20. 【算法练习】POJ - 3683 Priest John's Busiest Day (2-SAT)

热门文章

  1. JavaScript基础知识点(学习李炎恢视频)
  2. 创新药物研究核心技术—计算机辅助药物设计
  3. 电脑连接WiFi后浏览器无法上网但其他软件正常使用——网络代理问题解决办法
  4. pdf转换器4.1注册码
  5. 想从事数据科学相关岗位,这些数学基础“必备”
  6. 十大肿瘤生信常用数据库,科研必备
  7. 十大免费杀毒软件大盘点
  8. 模拟UNIX/Linux 文件系统 c语言
  9. VS2008按F5无法到达断点就直接显示了页面,主要有以下几种...
  10. SMA、EMA与双均线策略