点击返回自学华为IoT物流网

自学华为IoT物联网_12 Huawei LiteOS基础架构

一、1个Huawei LiteOS Kernel

1.1 huawei LiteOS Kernel基本框架图

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

1.1.1  Kernel模块--任务

  • 任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。
  • Huawei LiteOS的任务模块提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度。任务是抢占式调度机制,同时支持时间片轮转调度方式。
  • 常用编程实例:
    如创建2个任务:TaskHi和TaskLo
        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_SemTask1、Example_SemTask2, Example_SemTask2优先级高于Example_SemTask1;两个任务中申请同一个信号量,解锁任务调度后两任务阻塞,测试任务Example_Semphore释放信号量;
    2. Example_SemTask2得到信号量,被调度,然后任务休眠20Tick,Example_SemTask2延迟,Example_SemTask1被唤醒;
    3. Example_SemTask1定时阻塞模式申请信号量,等待时间10Tick,因信号量仍被Example_SemTask2持有,Example_SemTask1挂起,10Tick后仍未得到信号量,Example_SemTask1被唤醒,试图以永久阻塞模式申请信号量,Example_SemTask1挂起;
    4. 20Tick后Example_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、应用架构协同来提高性能

三、OPEN的API接口

  • 开放的API屏蔽底层差异,让应有开发者只需关注上层应用开发
  • 友好的接口设计使得已熟悉在Linux系统上开发应用的开发者,能够非常平滑的切换到Huawei Lite、OS系统上开发,同时由于Huawei LiteOS系统的精简内核特性,使得开发者更容易理解内核。

.....

自学华为IoT物联网_12 Huawei LiteOS基础架构的更多相关文章

  1. 自学华为IoT物联网之路

    自学华为IoT物联网之路 01 自学华为IoT物联网_01 物联网概述 02 自学华为IoT物联网_02 常见物联网通信技术 03 自学华为IoT物联网_03 公共事业物联网常见问题及解决方案 04  ...

  2. 自学华为IoT物联网_11 物联网操作系统介绍

    点击返回自学华为IoT物流网 自学华为IoT物联网_11 物联网操作系统介绍 1.1  物联网面临的困难 物联网终端发展面临的困难:开发者需要懂硬件和芯片的差异,自行适配硬件接口 物联网开发面临的困难 ...

  3. 自学华为IoT物联网_01 物联网概述

    点击返回自学华为IoT物流网 自学华为IoT物联网_01 物联网概述 1. 物联网的概念 百度百科: 物联网(Internet of Things),国内外普遍公认的是MIT Auto-ID中心Ash ...

  4. 自学华为IoT物联网_10 IoT联接管理平台配置及开发实验1

    点击返回自学华为IoT物流网 自学华为IoT物联网_10 IoT联接管理平台配置及开发实验1 实验1:OceanConnect平台实验             通过基本的编程操作与配置,帮助读者熟悉O ...

  5. 自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案

    点击返回自学华为IoT物流网 自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案 1. 家庭中遇到的问题 2.1 华为智慧家庭概念的发展历程 2.2 华为智慧家庭的解决方案架构 智慧家庭主要 ...

  6. 自学华为IoT物联网_08 IoT连接管理平台介绍

    点击返回自学华为IoT物流网 自学华为IoT物联网_08 IoT连接管理平台介绍 一.IoT连接管理平台的由来 1.1  物联网产业发展面临的挑战 新业务上线周期长,应用碎片化,开发周期长,场频上市慢 ...

  7. 自学华为IoT物联网_07 物联网安全

    点击返回自学华为IoT物流网 自学华为IoT物联网_07 物联网安全 1. 物联网安全的事件 事件1: 特斯拉事件 车载终端被入侵,通过CAN总线命令可远程控制车辆启停: 本地关键信息存储未做保护,印 ...

  8. 自学华为IoT物联网_09 OceanConnect业务流程

    点击返回自学华为IoT物流网 自学华为IoT物联网_09 OceanConnect业务流程 1.  物流网重要的连个协议介绍 1.1  重要物联网协议介绍----MQTT MQTT(消息队列遥测传输) ...

  9. 自学华为IoT物联网_05 能源工业物联网常见问题及解决方案

    点击返回自学华为IoT物流网 自学华为IoT物联网_05 能源工业物联网常见问题及解决方案 1. 1 能源工业--油田业务面临的三大挑战 故障处理不及时: 部分油田开采难道大.机械故障较多.现场发生的 ...

随机推荐

  1. 合并dll文件

    在使用VS进行.Net编程时,出现了一个奇怪的现象. 在一个类库项目中导入了dll库A后,再导入A的两个依赖项(dll库)B和C,执行“生成”操作时,出现错误信息,提示B和C的库版本与A所需的不一致. ...

  2. 企业级分布式应用服务EDAS _Dubbo商业版_微服务PaaS平台 【EDAS Serverless 运维 创业】

    企业级分布式应用服务EDAS _Dubbo商业版_微服务PaaS平台_分布式框架 - 阿里云https://www.aliyun.com/product/edas?source_type=yqzb_e ...

  3. Apache Tomcat® - Which Version Do I Want?

    Apache Tomcat® - Which Version Do I Want?http://tomcat.apache.org/whichversion.html

  4. php7函数,声明,返回值等新特性介绍

    使用 ... 运算符定义变长参数函数 (PHP 5 >= 5.6.0, PHP 7) 现在可以不依赖 func_get_args(), 使用 ... 运算符 来实现 变长参数函数. functi ...

  5. python爬虫scrapy之downloader_middleware设置proxy代理

    一.背景: 小编在爬虫的时候肯定会遇到被封杀的情况,昨天爬了一个网站,刚开始是可以了,在settings的设置DEFAULT_REQUEST_HEADERS伪装自己是chrome浏览器,刚开始是可以的 ...

  6. win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案

    转自https://www.baidu.com/link?url=67JXh4h79mN47mEenuH_ElGkSh9_GdOiY-Xp9Ihw0_mQIZHrPx-HxY3EIm_nTZKPoRZ ...

  7. todo项目总结

    vue+webpack项目工程配置 1.vue-loader+webpack项目配置 2.webpack配置项目加载各种静态资源 3.webpack-dev-server的配置和使用 安装: pack ...

  8. LODOP直接用base64码输出图片

    Lodop中的ADD_PRINT_IMAGE,也可以直接输出base64码图片,不用加img标签,如果加了img标签,会被当做超文本对待,受浏览器引擎解析的影响. 什么时候使用base64码直接输出比 ...

  9. Tuple Class

    Inheritance Hierarchy   System.Object  System.Tuple Methods   Name Description Create<T1>(T1) ...

  10. Sass(1)--- 了解Sass的发展

    1, Sass 其实是一门编程语言,用来书写css, 它对变量的声明,注释等作出了一系列的规定. 其实Sass写出的文件为SCSS, 它还需要编译成真正的css,供浏览器使用. 2, Sass 的编译 ...