网站建设冷色调,东莞营销型网站建设,移投界seo,vs做网站案例OpenHarmony轻量级内核 
思维导图 https://download.csdn.net/download/lanlingxueyu/88816723 
概述 
内核是一人操作系统的运算核心,决定着系统的性能和稳定性。它是基于硬件的第一层软件扩充,提供操作系统的基本功能,是操作系统工作的基础。它负责管理系统的进程、内存、…OpenHarmony轻量级内核 
思维导图 https://download.csdn.net/download/lanlingxueyu/88816723 
概述 
内核是一人操作系统的运算核心,决定着系统的性能和稳定性。它是基于硬件的第一层软件扩充,提供操作系统的基本功能,是操作系统工作的基础。它负责管理系统的进程、内存、外设驱动程序、支件和网络系统 LiteOS-M 
概述 
百K级内存设备 
支持内存保护单元 
适用于轻量系统 
应用于轻量系统,面向的MCU一般股是百K级内存,可支持MPU隔离,业界类似以的内核有FreeRToS或Threadx等 
内核概述 LiteOS-M内核架构包含硬件相关层以及硬件无关层, 
其中硬件相关层按不同编译工具链、芯片架构分类, 提供统一的HAL(Hardware Abstraction Layer) 接口其他模块属于硬件无关层, 其中基础内核模块提供基础能力, 扩展模块提供网络、文件系统等组件能力 KAL(Kernel Abstraction Layer)模块提供统一的标准接口 
HAL(HardwareAbstractionLayer)接口,提升了硬件易适配性,满足AloT类型丰富的硬件和编译工具链的拓展 
内存管理 
静态内存 
动态内存 
通信机制 
事件 
互锁 
消息队列 
信号量 CMSIS(Cortex Microcontroller Software InterfaceStandard,微控制器软件接标准) 
和 POSIX(Portable Operating System Interface,可移植操作系统接口) 都是可移植操作接口的标准,属于应用接口层,可增强应用软件的可移植性,降低开发难度。 
CMSIS(Cortex Microcontroller Software InterfaceStandard,微控制器软件接标准) 
####### 
####### CMSIS是对于那些基于ARM Cortex处理器的微控制器独立于供应商的硬件抽象层。它包含多个组件层,其中之一是RTOS层,该层定义了一套通用及标准化的RTOSAPI接口,减少了应用开发者对特定RTOS的依赖,方便用户软件的移植重用。该套API有2个版本,分别为版本1(CMSIS-RTOSv1)和版本2(CMSIS-RTOSv2),OpenHarmonyLiteos-M仅提供其版本2的实现。 
POSIX(Portable Operating System Interface,可移植操作系统接口) 
####### 
####### OpenHarmony内核使用musl libc库以及自研接口,支持部分标准POsIX接口,开发者可基于POSIX标准接口开发内核之上的组件及应用。 LiteOS-M内核启动流程 1.在开发板配置文件targetconfig.h配置系统时钟、每秒Tick数,可以对任务、内存、IPC、异常处理模块进行裁剪配置 
2.系统后动时,根居配置进行指定模块的初始化 
3.内核启动流程包含外设初始化、系统时钟配置、内核初始化、操作系统启动等,详见内核启动流程 
LiteOS-M已经支持ARMCortex-M3、ARMCortex-M4、ARMCortex-M7、ARM Cortex-M33、RISc-V等主流架构 
内核基础 
任务管理 
描述 
从系统角度看,任务是竞争系统资源的最小运行单元。任务可以使用等待CPU、使用内存空间等系统资源,并独立于其它任务运行 
Liteos-M的任务模块可以给用户提供多个任务,实现任务间的切换,帮助用户管理业务程序流程 
任务模块具有如下特性 
支持多任务 
一个任务表示一个线程 
抢占式调度机制 
####### 高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度 
相同优先级任务支持时间片轮转调度方式 
共有32个优先级[0-31],最高优先级为0,最低优先级为31 
任务状态 ####### 阻塞态(Blocked)包含任务被挂起(suspend状态)、任务被延时(delay状态)、任务正在等待信号量、读写队列或者等待事件等 
####### 就绪态-运行态:任务创建后进入就绪态,发生任务切换时,就绪队列中最高优先级的任务被执行,从而进入运行态,同时该任务从就绪队列中移出 
####### 运行态-就绪态:有更高优先级任务创建或者恢复后,会发生任务调度,此刻就绪队列中最高优先级任务变为运行态,那么原先运行的任务由运行态变为就绪态,依然在就绪队列中 
####### 就绪态-阻塞态:任务也有可能在就绪态时被阻塞(挂起),此时任务状态由就绪态变为阻塞态,该任务从就绪队列中删除,不会参与任务调度,直到该任务被恢复 
####### 阻塞态-就绪态:阻塞的任务被恢复后(任务恢复、延时时间超时、读信号量超时或读到信号量等),此时被恢复的任务会被加入就绪队列,从而由阻塞态变成就绪态:此时如果被恢复任务的优先级高于正在运行任务的优先级,则会发生任务切换,该任务由就绪态变成运行态 
####### 运行态-阻塞态:正在运行的任务发生阻塞(挂起、延时、读信号量等)时,将该任务插入到对应的阻塞队列中,任务状态由运行态变成阻塞态,然后发生任务切换运行就绪队列中最高优先级任务 
####### 运行态-退出态:运行中的任务运行结束,任务状态由运行态变为退出态。退出态包含任务运行结束的正常退出状态以及nvalid状态。例如,任务运行结束但是没有自删除,对外呈现的就是lnyalid状态,即退出态 
####### 阻塞态-退出态:阻塞的任务调用删除接口,任务状态由阻塞态变为退出态 
任务管理相关概念 ####### 任务ID 
######## 在任务创建时通过参数返回给用户,是任务的重要标识 
####### 任务优先级 
######## 表示任务执行的优先顺序 
####### 任务入口函数 
######## 新任务得到调度后将执行的函数。该函数由用户实现,在任务创建时,通过任务创建结构体设置 
####### 任务栈 
######## 每人任务都拥有一人独立的栈空间,我们称为任务栈。栈空间里保存的信息包含局部变量、寄存器、函数参数、函数返回地址等 
####### 任务上下文 
######## 任务在运行过程中使用的一些资源,如寄存器等,称为任务上下文 
####### 任务控制块TCB 
######## 每个任务都含有一个任务控制块(TCB) 
####### 任务切换 
######## 包含获取就绪队列中最高优先级任务、切出任务上下文保存、切入任务上下文恢复等动作 
任务开发流程 ####### 1.锁任务调度LOs_TaskLock,防止高优先级任务调度。 2.创建任务Los_TaskCreate。 3.解锁任务LOs_TaskUnlock,让任务按照优先级进行调度。