zoukankan      html  css  js  c++  java
  • 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系统的精简内核特性,使得开发者更容易理解内核。
  • 相关阅读:
    【贪心】【堆】Gym
    【并查集】Gym
    【拓扑排序】【bitset】Gym
    【递归】【线段树】【堆】AtCoder Regular Contest 080 E
    【二分图】【并查集】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem L. Canonical duel
    【动态规划】【滚动数组】【bitset】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem J. Terminal
    【二分】【字符串哈希】【二分图最大匹配】【最大流】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem I. Minimum Prefix
    【枚举】【最小表示法】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem F. Matrix Game
    【推导】【构造】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem E. Space Tourists
    【推导】【贪心】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem D. Clones and Treasures
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12257643.html
Copyright © 2011-2022 走看看