梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记

wx62ed0a321e400
发布于 2022-8-8 18:05
浏览
0收藏

核心模块
核心模块位于:kernel -> base -> core
其中包括:
los_bitmap.c 用于位操作,改变标志位。
los_process.c 用于控制并发、并行、单核多进程、多核多线程的管理
los_sortlik.c 用于排序
los_swtmr.c 用于定时器
los_sys.c 用于时间管理,转换秒与毫秒,了解当前系统运行时间
los_task.c 用于任务状态管理,一个任务代表一个线程,管理其运行状态。
los_tick.c 用于系统时钟、节拍器。

任务管理
梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记-鸿蒙开发者社区
线程状态迁移
梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记-鸿蒙开发者社区
软件定时器
软件定时器,软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,它实现的功能与硬件定时器也是类似的
使用硬件定时器时,每次在定时时间到达之后就会自动触发一个中断,用户在中断中处理信息;而使用软件定时器时,需要我们在创建软件定时器的时候指定时间到达后要去调用的函数(也称超时函数/回调函数,为了统一,下文均用回调函数描述),在回调函数中处理信息。
定义回调函数
void timer_callback(void *arg)
{ (void) arg; printf(“定时器启动,开始执行定时器任务\r\n”);
/在下方添加定时器要执行的任务/ }

定义定时器属性

梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记-鸿蒙开发者社区

信号量
信号量结构体定义
梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记-鸿蒙开发者社区
信号量初始化
初始化双向循环链表,维护未使用的信号量池,为信号量池申请内存,如果申请失败,则返回错误
循环每一个信号量进行初始化,为每一个信号量节点指定索引
梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记-鸿蒙开发者社区
创建信号量
我们可以使用函数LOS_SemCreate(UINT16 count, UINT32 *semHandle)来创建计数信号量,使用UINT32 LOS_BinarySemCreate(UINT16 count, UINT32 *semHandle)创建二值信号量
梅科尔工作室OpenHarmony设备开发培训笔记第六章学习笔记-鸿蒙开发者社区

分类
收藏
回复
举报
回复
    相关推荐