1 / 38
文档名称:

嵌入式操作系统教程-第九章.ppt

格式:ppt   大小:2,040KB   页数:38页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式操作系统教程-第九章.ppt

上传人:相惜 2024/3/28 文件大小:1.99 MB

下载得到文件列表

嵌入式操作系统教程-第九章.ppt

相关文档

文档介绍

文档介绍:该【嵌入式操作系统教程-第九章 】是由【相惜】上传分享,文档一共【38】页,该文档可以免费在线阅读,需要了解更多关于【嵌入式操作系统教程-第九章 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第九章任务的同步与通信任务间的同步和事件控制块信号量及其操作任务优先级反转和互斥型信号量消息邮箱及其操作消息队列及其操作1精选课件第九章任务的同步与通信一、任务间的同步鉴于任务间直接制约或间接制约性的关系,这种制约性的合作运行机制叫做任务的同步。二、事件用于uC/OS-II任务间通信媒介的信号量、邮箱和消息队列等数据结构会影响到任务的程序流程,这些通信媒介又被称为事件〔Events〕。§:通常表现为一个二值型信号,用一位二进制位来表示〔1/0〕,可以实现共享资源的独占式占用。信号量:通常表现为一个递减的计数器信号,可以实现假设干个同类资源的共享,提高资源使用效率。(缓存区)的指针结构称为消息邮箱。,用来传递多个消息的地址指针,这样消息的数据结构称为消息队列。:对等待事件的所有记录进行登记并排序允许任务有一定的等待时间5精选课件6精选课件三、事件控制块事件控制块的结构OSEventPtr指针,只有在所定义的事件是邮箱或者消息队列时才使用。当所定义的事件是邮箱时,它指向一个消息,而当所定义的事件是消息队列时,它指向一个数据结构。typedefstruct{void*OSEventPtr;/*指向消息或者消息队列的指针*/INT8UOSEventTbl[OS_EVENT_TBL_SIZE];/*等待任务列表*/t;/*计数器(当事件是信号量时)*/INT8UOSEventType;/*事件类型*/INT8UOSEventGrp;/*等待任务所在的组*/}OS_EVENT;[]/.OSEventGrp与前面提过的OSRdyTbl[]和OSRdyGrp非常相像,只不过前两者包含的是等待某事件的任务,而后两者包含的是系统中处于就绪状态的任务。.t:当事件是一个信号量时,.t是用于信号量的计数器。.OSEventType:定义了事件的具体类型。它可以是信号量〔OS_EVENT_SEM〕、邮箱〔OS_EVENT_TYPE_MBOX〕或消息队列〔OS_EVENT_TYPE_Q〕中的一种。用户要根据该域的具体值来调用相应的系统函数,以保证对其进行的操作的正确性。8精选课件四、:把变量OSEventGrp及任务等待表中的每一位都清0,即令事件的任务等代表中不含有任何等待任务。voidOSEventWaitListInit(OS_EVENT*pevent){INT8Ui;pevent->OSEventGrp=0x00;for(i=0;i<OS_EVENT_TBL_SIZE;i++){pevent->OSEventTbl[i]=0x00;}},应把次任务登记在时间的等待任务列表中,并把任务控制块中的任务状态置为等待状态和吧任务置为非就绪任务voidOSEventTaskWait(OS_EVENT*pevent){OSTCBCur->OSTCBEventPtr=pevent; (1)if((OSRdyTbl[OSTCBCur->OSTCBY]&=~OSTCBCur->OSTCBBitX)==0){(2)OSRdyGrp&=~OSTCBCur->OSTCBBitY;}pevent->OSEventTbl[OSTCBCur->OSTCBY]|=OSTCBCur->OSTCBBitX;(3)pevent->OSEventGrp|=OSTCBCur->OSTCBBitY;}10精选课件