当前位置: 首页 > article >正文

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.kler.cn/a/232036.html

相关文章:

  • Oracle Instant Client 23.5安装配置完整教程
  • 工作时发现自己手写SQL能力很低,特此再来学习一遍SQL
  • .Net Core根据文件名称自动注入服务
  • C++:基于红黑树封装map和set
  • jenkins用户在执行scp的时候如何做免密登录
  • 使用React和Vite构建一个AirBnb Experiences克隆网站
  • 锁(二)队列同步器AQS
  • 【Spring】Spring 启示录
  • Vue 学习随笔系列九 -- 表格中插入图片、背景、自定义表头
  • Windows安装DeepSpeed
  • 线阵相机系列-- 1. 什么是线阵相机
  • 【leetcode】深搜、暴搜、回溯、剪枝(C++)1
  • 什么是jieba?
  • 快速熟悉 MatrixOne 内核前端
  • 深度神经网络中的BNN和DNN:基于存内计算的原理、实现与能量效率
  • 【人工智能】人工智能 – 引领未来科技的潮流
  • DataX源码分析 TaskGroupContainer
  • maven java 如何打纯源码zip包
  • 【UE】游戏运行流程的简单理解
  • 网络套件字(理论知识)
  • MySQL用心总结
  • 常见的几种算法排序(C#)
  • 2024-02-04(hive)
  • 缓存异常与一致性
  • 【GoLang入门教程】Go语言几种标准库介绍(五)
  • Linux的Vi编辑器显示行数