liteos kernel任务管理

简介: liteos 任务管理liteos 的任务管理、信号量(互斥锁)、内存管理。

任务管理

基本概念

1、从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。

2、HuaweiLiteOS的任务模块可以给用户提供多个任务,实现了任务之间的切换和通信,帮助用户管理业务程序流程。

3、HuaweiLiteOS是一个支持多任务的操作系统。在HuaweiLiteOS中,一个任务表示一个线程。

4、HuaweiLiteOS中的任务是抢占式调度机制,同时支持时间片轮转调度方式。

5、高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度。

6、HuaweiLiteOS的任务一共有32个优先级(0-31),最高优先级为0,最低优先级为31。

任务状态

任务状态通常分为以下四种:

就绪(Ready):该任务在就绪列表中,只等待CPU。

运行(Running):该任务正在执行。

阻塞(Blocked):该任务不在就绪列表中。包含任务被挂起、任务被延时、任务正在等待信号量、读写队列或者等待读写事件等。

退出态(Dead):该任务运行结束,等待系统回收资源。

为了让SDK能够更广泛的应用,所以提出了OSAL。

SDK内部集成的组件以及SDK本身使用的OS功能,都调用的是OSAL接口,因为SDK要运行起来,必须注册相关的OS进OSAL才行。

osal的api接口声明在<osal.h>中,使用相关的接口需要包含该头文件,关于函数的详细参数请参考该头文件的声明。

目前已经适配了LiteOS/LINUX/MACOS等,SDK可以在这些系统下运行。如果你需要在非上述系统下运行SDK,您需要将新系统适配进OSAL,保障SDK需要的OS功能正常。

适配OSAL您需要在您的系统初始化完毕之后,调用osal_install接口将您的系统注册进SDK即可。使用该接口需要包含<osal_imp.h>,相关的宏定义在<osal_type.h>中。详情参考该头文件。


相关文章
|
3月前
|
Linux 网络安全 开发工具
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
本文介绍了如何基于Linux Kernel 5.15.102版本和BusyBox创建一个自定义的迷你Linux ARM系统,并使用QEMU进行启动和调试,包括内核和BusyBox的编译配置、根文件系统的制作以及运行QEMU时的命令和参数设置。
257 0
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
|
6月前
|
Oracle 关系型数据库 数据库
SAP内核(KERNEL)升级
SAP内核(KERNEL)升级
114 1
|
编解码 Linux 数据格式
Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一)
Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一)
1613 0
|
Linux API 芯片
【Linux】Pinctrl子系统学习笔记
Linux Pinctrl(Pin control) 是一个子系统,控制芯片的引脚复用、电气属性和其他和硬件相关的设置。本文将介绍 Linux Pinctrl 子系统的基本概念,架构和使用方法。 基本概念
|
编解码 Ubuntu Linux
linux/鸿蒙开发(基于IMX6ULL)开发 (十三)Framebuffer应用编程
linux/鸿蒙开发(基于IMX6ULL)开发 (十三)Framebuffer应用编程
277 2
linux/鸿蒙开发(基于IMX6ULL)开发 (十三)Framebuffer应用编程
SPI设备标准驱动源码分析(linux kernel 5.18)
SPI设备标准驱动源码分析(linux kernel 5.18)
SPI设备标准驱动源码分析(linux kernel 5.18)
|
Linux Shell 调度
嵌入式Linux内核kernel学习(基于I.m6ull)
嵌入式Linux内核kernel学习(基于I.m6ull)
251 0
|
SoC 内存技术 Perl
【DVCon-US-2020】在硬件仿真平台调试SoC Firmware的方法
【DVCon-US-2020】在硬件仿真平台调试SoC Firmware的方法
244 0
【DVCon-US-2020】在硬件仿真平台调试SoC Firmware的方法
|
前端开发 Linux SoC
Linux内核之pinctrl子系统
众所周知,ARM SoC提供了十分丰富的硬件接口,而接口物理上的表现就是一个个的pin(或者叫做pad, finger等)。为了实现丰富的硬件功能,SoC的pin需要实现复用功能,即单独的pin需要提供不同功能,例如,pin0既可以作为GPIO,可以也用于i2c的SCL,通过pin相关的复用寄存器来切换不同的功能。除此之外,软件还可以通过寄存器配置pin相关的电气特性,例如,上拉/下拉、驱动能力、开漏等。
410 0