梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记 原创

一个不知名的码农
发布于 2022-8-8 21:27
浏览
0收藏

华为设备开发第三章笔记
第三章:内核开发
3.1任务管理
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
任务管理简介: 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
任务状态相关的概念
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
任务状态迁移(必须去了解)
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
任务接口简介
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
创建任务接口详情
Func:任务函数,argument:作为启动参数传递给任务函数的指针,attr:任务入口函数的参数列表,返回值:任务id。
3.2软件定时器
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
软件定时器,是基于系统Tick时钟中断且有软件来模拟的定时器,当经过设定的Tick时钟计数值后,会触发用户的回调函数。定时精度与系统Tick的时钟有关。
软件定时器为了解决硬件定时器的受限制问题而开发的。LiteOS提供软件定时器。
以下是软件定时器的运作机制
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
下一步通过操作来实现软件计时器
首先修改一下build.gn进行如下修改
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
其次在此文件中 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
取消一个注释如下 ,之后在mobaXterm中输入hpm dist进行编译,再用hiburn进行烧录,操作与之前的一样。
之后会对定时器相关的函数进行修改以达到其他的功能,
在Time_example中将原有的代码进行修改,如下
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
之后进行编译在进行烧录,之后如果出问题的话,将延时代码osdelay时间改变位50,在进行编一个烧录即可成功
总结:单次定时器想停止定时器需要在定时器运行期间,删除定时器是可以在任意时间。
3.3信号量
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
信号量基本概念: 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
运作原理: 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
(6)信号量允许多个任务在同一时刻访问同一资源
之后进行实际操作
在vscode中打开梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
下图红色的文件。
之后对此文件的代码进行编译和烧录,梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区

之后会注释一部分来进行代码的改变和现象的改变
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
之后重复上面的编译和烧录操作
3.4事件管理
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
事件基本概念: 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
任务的与和或是一个重要的机制,通常来说,一个事件对应多个任务的话,先让或的先来,而与的是一种两个或者多个事件显现的时候才会触发。
实际操作:
在build.gn中将一些取消注释另一个进行注释 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
之后进行常规的编译和烧录,观察程序是否正常运行
,正常之后对代码进行修改
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
之后在进行常规的代码的编译和烧录
发现事件有阻塞,在对代码进行如下修改 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
再进行烧录和编译不过和上述的不太一样需要在vscode中编译,如果把all改成any一个事件也可以调度任务。
3.5互斥锁梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
,下面是互斥锁的基本概念
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
互斥锁的运作原理
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
仍然打开此文件夹 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
之后对这里面的代码编译和烧录,之后可以进行一些相关的修改来删除此互斥锁,相关操作如下
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
修改好后进行编译和烧录,重复之前的操作。
3.6消息队列
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
消息队列基本概念
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
消息队列运作原理
梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
编译前需要先修改一下代码 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区
之后进行相关的烧录,观察现象。
在修改一下相关的代码,如下 梅科尔工作室OpenHarmony设备开发培训笔记-第3章学习笔记-鸿蒙开发者社区,之后在进行编译和烧录检验修改的操作是否成功

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
    相关推荐