网站大量收购闲置独家精品文档,联系QQ:2885784924

嵌入式系统开发P03-OpenHarmony内核进阶分析.pptx

嵌入式系统开发P03-OpenHarmony内核进阶分析.pptx

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于OpenHarmony的嵌入式开发

第三章OpenHarmony内核进阶分析大连理工大学-朱明

安全边距3.1进程间通信[3.1.0]进程间通信简介LiteOS-M调度对象是任务Task,LiteOS-A是进程Process和任务进程间通信(Inter-ProcessCommunication,IPC)指操作系统提供的,供进程(任务)之间共享数据的机制和方法,应用程序可以通过IPC实现相互之间的通信,IPC关系着操作系统内核的效率问题。LiteOS-M所支持的IPC类型包括:事件(Event)、互斥锁(Mutex)、队列(Queue)和信号量(Semaphore)。LiteOS-A除了支持上述类型之外,还支持信号(Signal)和用户态快速互斥锁(Futex)等。IPC具有很强的通用性,本小节不区分LiteOS-M和LiteOS-A。基于OpenHarmony的嵌入式开发2

安全边距3.1进程间通信[3.1.1]事件Event事件:用于任务间的同步操作接口:事件初始化、事件读写、事件清零、事件销毁等表示:用32位无符号整型变量来表示的,其中每一位表示一种事件类型,LiteOS共表达了31种可用的事件类型(第25位不可用)。基于OpenHarmony的嵌入式开发3/***@ingrouplos_event*Eventcontrolstructure*/typedefstructtagEvent{UINT32uwEventID;/**Eventmaskintheeventcontrolblock,indicatingtheeventthathasbeenlogicallyprocessed.*/LOS_DL_LISTstEventList;/**Eventcontrolblocklinkedlist*/}EVENT_CB_S,*PEVENT_CB_S;事件控制块

安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的特点:(1)任务间的事件同步,可以是一对多,也可以多对多的。一对多表示一个任务可以等待多个事件,多对多则表示多个任务可以等待多个事件。但是一次写事件最多触发一个任务从阻塞中醒来。(2)事件具有读超时机制。(3)事件只做任务间同步,不传输具体数据。(4)多次向事件控制块写入同一事件类型,在被清零前等效于只写入一次。(5)多个任务可以对同一事件进行读写操作。(6)支持事件读写超时机制。基于OpenHarmony的嵌入式开发4

安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的运作流程示例基于OpenHarmony的嵌入式开发5创建一个事件控制块,通过该控制块维护一个已处理的事件集合,以及等待特定事件的任务链表。向事件控制块中写入指定的事件。事件控制块更新事件集合,并遍历任务链表,根据任务等待具体条件满足情况决定是否唤醒相关任务。如果读取的事件已存在则会直接同步返回。其他情况会根据超时时间或事件触发情况来决定返回时机。如果等待的事件条件在超时时间耗尽之前到达,则阻塞任务会被直接唤醒,否则只能在超时时间耗尽时,该任务才会被唤醒。读事件条件满足与否取决于参数eventMask(掩码)和mode(模式)。LOS_EventInitLOS_EventWriteLOS_EventReadLOS_EventPool

安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的运作流程示例基于OpenHarmony的嵌入式开发6完成程序既定的功能后,还需要根据指定掩码,对事件控制块的事件集合进行清零操作。当掩码为0时,表示将事件集合全部清零。当掩码为0xffff时,表示不清除任何事件,保持事件集合原状。向事件控制块中写入指定的事件。事件控制块更新事件集合,并遍历任务链表,根据任务等待具体条件满足情况决定是否唤醒相关任务。销毁指定的事件控制块LOS_EventClearLOS_EventDestroyLOS_EventInitLOS_EventWriteLOS_EventReadLOS_EventPool

安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的运作流程示例:一种开发流程参考(1)初始化事件控制块;(2)阻塞读事件控制块;(3)写入相关事件;(4)阻塞任务被唤醒,读取事件并检查是否满足要求;(5)处理事件控制

您可能关注的文档

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档