HCIA-HarmonyOS设备开发认证V2.0-3.轻量系统内核基础

在这里插入图片描述

目录

  • 一、前言
  • 二、LiteOS-M系统概述
  • 三、内核框架
    • 3.1、CMSIS 和 POSIX 整体架构
    • 3.2、LiteOS-M内核启动流程
  • 四、内核基础
    • 4.1、任务管理
    • 4.2、时间管理(待续)
    • 4.3、中断管理(待续)
    • 4.4、软件定时器(待续)
  • 五、内存管理
    • 5.1、静态内存(待续)
    • 5.2、动态内存(待续)
  • 六、内核通信机制
    • 6.1、事件event(待续)
    • 6.2、互斥锁Mux(待续)
    • 6.3、消息队列Queue(待续)
    • 6.4、信号量Sem(待续)
  • 七、内核扩展组件
    • 7.1、CPU占用率(待续)
    • 7.2、动态加载(待续)

一、前言

  • 内核是一个操作系统的运算核心,决定着系统的性能和稳定性。它是基于硬件的第一层软件扩充,提供操作系统的基础功能,负责管理系统的进程、内存、外设驱动、文件和网络系统。
  • 本章主要讲述轻量系统内核LiteOS-M的基本原理,包括内核基础,内存管理,内存通信机制,以及内核扩展组件。

二、LiteOS-M系统概述

是面向 IoT 领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等。支持驱动框架 HDF(Hardware Driver Foundation),统一驱动标准,为设备厂商提供了更统一的接入方式,使驱动更加容易移植,力求做到一次开发,多系统部署。

三、内核框架

  • LiteOS-M 内核架构包含硬件相关层以及硬件无关层,其中硬件相关层按不同编译工具链、芯片架构分类,提供统一的 HAL(Hardware Abstraction Layer)接口,提升了硬件易适配性,满足 AIoT 类型丰富的硬件和编译工具链的拓展;其他模块属于硬件无关层,其中基础内核模块提供基础能力,扩展模块提供网络、文件系统等组件能力,还提供错误处理、调测等能力,KAL(Kernel Abstraction Layer)模块提供统一的标准接口。

    请添加图片描述

3.1、CMSIS 和 POSIX 整体架构

  • CMSIS(Cortex Microcontroller Software Interface Standard, 微控制器软件接口标准)和POSIX(Portable Operating System Interface, 可移植操作系统接口)都是可移植操作接口的标准,属于应用接口层,可增强应用软件的可移植性,降低开发难度。
    请添加图片描述

  • CMSIS 架构

    • CMSIS是对于那些基于ARM Cortex处理器的微控制器独立于供应商的硬件抽象层。它包含多个组件层,其中之一是RTOS层,该层定义了一套通用及标准化的RTOS API接口,减少了应用开发者对特定RTOS的依赖,方便用户软件的移植重用。

    请添加图片描述

  • POSIX 架构

    • POSIX是API的一系列互相关联标准的总称。
    • 对于目前大多数的RTOS实时操作系统,不支持使用内存管理单元。
    • 文件系统包括虚拟文件系统,网络文件系统,文件配置表等内容。
    • 扩展内核:异常管理,动态加载等
    • 基础内核:时间管理,内存管理,IPC通信,任务同步,硬件管理,任务调度。

    请添加图片描述

3.2、LiteOS-M内核启动流程

LiteOS-M已经支持ARM Cortex-M3、ARM Cortex-M4、ARM Cortex-M7、ARM CortexM33、RISC-V、Xtensa、C-SKY等主流架构。
在开发板配置文件target_config.h配置系统时钟、每秒Tick数,可以对任务、内存、IPC、异常处理模块进行裁剪配置。系统启动时,根据配置进行指定模块的初始化。内核启动流程包含外设初始化、系统时钟配置、内核初始化、操作系统启动等。

请添加图片描述

四、内核基础

4.1、任务管理

LiteOS-M任务管理

4.2、时间管理(待续)

4.3、中断管理(待续)

4.4、软件定时器(待续)

五、内存管理

5.1、静态内存(待续)

5.2、动态内存(待续)

六、内核通信机制

6.1、事件event(待续)

6.2、互斥锁Mux(待续)

6.3、消息队列Queue(待续)

6.4、信号量Sem(待续)

七、内核扩展组件

7.1、CPU占用率(待续)

7.2、动态加载(待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460243.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)

最终效果 文章目录 最终效果系列目录前言添加捕食者动画控制源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第24篇中,我们将探索如何用unity制作一个3D动物AI生态系统游戏…

机器学习1一knn算法

1.基础知识点介绍 曼哈顿距离一般是比欧式距离长的除非在一维空间 拐弯的就是曼哈顿距离 Knn查看前5行数据head(),info看空非空 查看特征对应的类型 Head()默认前5行,head(3)就是前3行数据 Unique()可以查看分类后的结果 csv的…

18:蜂鸣器

蜂鸣器 1、蜂鸣器的介绍2、编程让蜂鸣器响起来3、通过定时控制蜂鸣器4、蜂鸣器发出滴滴声(间歇性鸣叫) 1、蜂鸣器的介绍 蜂鸣器内部其实是2个金属片,当一个金属片接正电,一个金属片接负电时,2个金属片将合拢&#xff…

多 split 窗口 in Gtkmm4

文章目录 效果预览实现概要源代码 效果预览 实现概要 使用Gtk::Paned虽然 Paned 只能装两个子控件, 但是我可以嵌套 paned1 装 box1 和 box2 paned2 装 paned1 和 box3 源代码 #include <gtkmm.h> class ExampleWindow : public Gtk::Window { public:ExampleWindow()…

蓝桥杯(Web大学组)2022国赛真题:水果消消乐

思路&#xff1a; 记录点击次数&#xff0c;点击次数为1时&#xff0c;记录点击下标&#xff08;用于隐藏or消除&#xff09;、点击种类&#xff0c;点击次数为2时&#xff0c;判断该下标所对应种类与第一次是否相同 相同&#xff1a;两个都visibility:hidden &#xff08;占…

汽车控制臂的拓扑优化

前言 本示例使用优化模块通过减小控制臂的体积同时最大化其刚度来优化汽车控制臂的设计。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 本例说明了汽车控制臂的拓扑优化&#xff0c;在拓扑优化过程中&#xff0c;修改设计区域中单元的材料特性(有效地从…

第62讲商品搜索动态实现以及性能优化

商品搜索后端动态获取数据 后端动态获取数据&#xff1a; /*** 商品搜索* param q* return*/GetMapping("/search")public R search(String q){List<Product> productList productService.list(new QueryWrapper<Product>().like("name", q)…

四.Linux实用操作 8-11.网络请求和下载.端口进程管理主机状态监控

目录 四.Linux实用操作 8.网络请求和下载 ping命令 wget命令--下载网络文件 curl命令--发送网络请求/下载文件 四.Linux实用操作 9.端口 端口 端口&#xff08;虚拟&#xff09; 端口&#xff08;号&#xff09; 查看端口占用 四.Linux实用操作 10.进程管理 查看进程…

位运算01 插入[C++]

图源&#xff1a;文心一言 上机题目练习整理&#xff0c;位运算&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 网页版目录在页面的右上角↗~&#x1f95d;&#x1f95d; 第1版&#xff1a;在力扣新手村刷题的记录~&#x1f9e9;&#x1f9e9; 编辑&#xff1a;梅…

C语言特殊指针

1 野指针 概念&#xff1a;指向一块未知区域的指针&#xff0c;被称为野指针。野指针是危险的。 危害&#xff1a; 引用野指针&#xff0c;相当于访问了非法的内存&#xff0c;常常会导致段错误&#xff08;segmentation fault&#xff09;引用野指针&#xff0c;可能会破坏系…

恒流源方案对比

1、双运放恒流源 2、运放三极管放大电路组成的恒流源 5A 3、运放三极管组成的恒流源 200uA 4、运放MOS管组成的恒流源 100mA 5、电源模块并联输出100A恒流

百面嵌入式专栏(面试题)C语言面试题22道

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍C语言相关面试题 。 宏定义是在编译的哪个阶段被处理的?答案:宏定义是在编译预处理阶段被处理的。 解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。 写一个“标准”宏MIN,这个…