huawei LiteOS Kernel基本框架解析

举报
云霄一天 发表于 2020/04/24 10:28:47 2020/04/24
【摘要】 一、1个Huawei LiteOS Kernel 1.1 huawei LiteOS Kernel基本框架图 嵌入式开发单片机芯片: 单进程多线程 1.1.1 Kernel模块--任务· 任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。· Huawei LiteOS的任务模块提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和...

一、1Huawei LiteOS Kernel

 1.1 huawei LiteOS Kernel基本框架图

 嵌入式开发单片机芯片: 单进程多线程

 1.1.1  Kernel模块--任务

· 任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。

· Huawei LiteOS的任务模块提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度。任务是抢占式调度机制,同时支持时间片轮转调度方式。

· 常用编程实例:
如创建2个任务:TaskHiTaskLo
    TaskHi为高优先级任务
    TaskLo为低优先任务

 1.1.2  Kernel模块--内存管理

· 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一。

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

· 通内存统计、内存越界检测功能。

· 常用编程实例:
如初始化一个动态内存池
    在动态内存池中申请一个内存块
    使用这块内存块存放一个数据
    打印出存放在内存块中的数据
    释放掉这块内存

 1.1.3  Kernel模块--中断

· 中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。

· Huawei LiteOS的中断支持中断创建、开/关中断、恢复中断、中断使能、中断屏蔽等功能。

 1.1.4  Kernel模块--队列

· 队列又称消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同接口选择传递消息是否存放在自己空间。

· Huawei LiteOS的队列支持队列的创建、删除、发送和接受功能。

· 常用编程实例:
 如 通过LOS_TaskCreate创建任务1和任务2:
      通过LOS_QueueCreate创建一个消息队列;
      在任务1 send_Entry中发送消息;
      在任务2 recv_Entry中接收消息;
      通过LOS_QueueDelete删除队列

 1.1.5  Kernel模块--信号量

· 信号量是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用股协助一组相互竞争的任务来访问临界资源。

· Huawei LiteOS的信号量支持信号量的创建、删除、PV等功能

· 常用编程实例:
 
1. 测试任务Example_Semphore创建一个信号量,锁任务调度,创建两个任务Example_SemTask1Example_SemTask2 Example_SemTask2优先级高于Example_SemTask1;两个任务中申请同一个信号量,解锁任务调度后两任务阻塞,测试任务Example_Semphore释放信号量;
2. Example_SemTask2得到信号量,被调度,然后任务休眠20TickExample_SemTask2延迟,Example_SemTask1被唤醒;
3. Example_SemTask1定时阻塞模式申请信号量,等待时间10Tick,因信号量仍被Example_SemTask2持有,Example_SemTask1挂起,10Tick后仍未得到信号量,Example_SemTask1被唤醒,试图以永久阻塞模式申请信号量,Example_SemTask1挂起;
4. 20TickExample_SemTask2唤醒,释放信号量后,Example_SemTask1得到信号量被调度运行,最后释放信号量。
5. Example_SemTask1执行完,40Tick后任务Example_Semphore被唤醒,执行删除信号量,删除两个任务。

 1.2 huawei LiteOS Kernel的优势

· 高实时性,高稳定性

· 超小内核,基础内核体积可以剪裁至不到10KB

· 低功耗

· 支持动态加载、分散加载

· 支持功能静态剪裁

二、Huawei LiteOS 中间件

 2.1 互联框架

· 互联框架解决不同协议终端的互联互通

· 优化Mesh自组网能力,满足海量终端组网

 

 2.2  传感框架

 传感框架提供多传感器统一管理。

 

 2.3  安全框架

 

 2.4  运行引擎

· 更轻框架、更好性能,应用智能化

· 高性能、轻量级JavaScript虚拟机
极小的ROM和内存占用空间
提供独立用户空间和应用隔离,保护应用安全

· 面向互联网的应用开发框架
使能轻量级物联网设备JavaScript开发
JS框架、JS虚拟机和OS系统优化性能和功耗

 2.5  JavaScript框架

 JS框架优势

· 简化跨硬件平台和中间件的系统集成

· 用高级语言抽象来隐藏部分变成细节

· 兼容大量已有的第三方库来丰富平台功能

· 虚拟机提供基于语言的安全性

JS虚拟机

· 针对资源高度受限的设备设计和优化

· OS、应用架构协同来提高性能

三、OPENAPI接口

· 开放的API屏蔽底层差异,让应有开发者只需关注上层应用开发

· 友好的接口设计使得已熟悉在Linux系统上开发应用的开发者,能够非常平滑的切换到Huawei LiteOS系统上开发,同时由于Huawei LiteOS系统的精简内核特性,使得开发者更容易理解内核。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。