最新嵌入式实时操作系统μCOS原理与实践5PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《最新嵌入式实时操作系统μCOS原理与实践5PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式实时操作系统μCOS原理与实践5PPT课件.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式实时操作系统嵌入式实时操作系统COSCOS原理原理与实践与实践5 5作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践第5章 消息管理5.1 消息邮箱5.1.1 建立消息邮箱5.1.2等消息5.1.3 发消息5.1.4 删除消息邮箱5.1.5放弃邮箱等待5.1.6 无等待请求消息5.1.7查询邮箱状态5.1.8 消息邮箱的例子5.2 消息队列5.2.1 消息队列数据结构5.2.2 初始化消息队列5.2.3 建立消息队列5.2.4发消息到消息队列5.2.5等待消息队列中的消息5.2.6删除消息队列5.2.7
2、取得消息队列的状态5.2.8消息队列应用举例习题作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢
3、有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.1.4 删除消息邮箱删除消息邮箱当消息邮箱不再使用了,就应该尽快归还给系统,即将消息占用的ECB归还给ECB空闲链表以备它用。消息邮箱的删除函数是OSMboxDel。删除一个消息也要涉及方方面面,因为可能有任务
4、正在等待这个邮箱中的消息。表5.5删除消息邮箱的函数OSMboxDel解析作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.1.5放弃邮箱等待放弃邮箱等待同放弃对信号量的等待类似,放弃等待邮箱也绝对不会是放弃本任务对邮箱的等待。放弃等待邮箱函数将放弃的是所有等待某邮箱的任务对该邮箱的等待或等待某邮箱的优先级最高的任务对邮箱的等待。表5.6放弃等待邮箱函数OSMboxPendAbort解析流程如下:1.检查事件控制块指针是否有效及事件控制块类型是否有效。2.如果pevent-OSEventGrp为0说明没有任
5、务等待消息邮箱,取消等待的任务数是0,返回0。3.否则根据参数opt(选项)进行分支转移,如为OS_PEND_OPT_BROADCAST,使用while语句循环地将等待该邮箱的每个任务用OS_EventTaskRdy来取消等待并使其就绪(除非任务还被挂起);如果为其他值则只将最高优先级的任务取消等待并就绪之。4.返回取消等待信号量的任务数。作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.1.6 无等待请求消息无等待请求消息在中断服务程序和有些用户任务中,需要无等待的请求消息邮箱。也就是说,到邮箱中取邮件,
6、如果有邮件就获得邮件,如果没有并不阻塞自己,而是继续执行其他代码。OSMboxAccept就是无等待的请求消息邮箱函数,参数是请求的消息邮箱的ECB指针。该函数的返回值是指向邮箱的指针,如果没有取得消息,那么就返回空指针。表5.7无等待地请求消息邮箱函数OSMboxAccept解析首先参数检查ECB是否有效,如果有效,将消息邮箱中邮件的地址OSEventPtr赋值给pmsg,然后清邮箱内容,返回获得的邮件的地址pmsg。这样,如果邮箱中有邮件,那么返回邮件的地址,如果没有,返回值就是空地址。作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实
7、践嵌入式实时操作系统原理与实践5.1.7查询邮箱状态查询邮箱状态消息邮箱状态查询函数OSMboxQuery的参数是ECB地址和一个指向OS_MBOX_DATA类型的地址。ECB地址指向邮箱,OS_MBOX_DATA类型的地址指向返回结果的一个S_MBOX_DATA类型的对象。表5.9查询消息邮箱状态函数OSMboxQuery解析作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.1.8 消息邮箱的例子消息邮箱的例子假设有任务TaskMessageSen和TaskMessageRec,TaskMessageSe
8、n在事件片1创建一个邮箱,如果邮箱中已没有邮件,每秒向邮箱发送一个消息,消息内容为从0开始的计数值,该计数值每秒加1。任务TaskMessageRec从时间1开始,做的事情就是查看邮箱,然后把邮件打印出来。现在我们采用邮件管理完成这两个任务的设计。作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.2 消息队列消息队列 消息邮箱中只能存放一则消息,太少了,能不能像电子邮件一样,管理多条消息呢?C/OS为实现这一目的,设计了消息队列管理。使用消息队列管理,就允许使用可以容纳多条信息的大邮箱,按照先进先出(FIF
9、O)的原则,发送和接收邮件。需要注意的是,这样的邮箱不是操作系统提供的,而是要由用户任务来提供。操作系统提供的是对其进行管理的程序。另外,邮箱中的内容仍然是邮件的地址。消息队列的代码单独存放在os_q.c中 作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.2.1 消息队列数据结构消息队列数据结构1消息队列及其控制块消息队列及其控制块typedef struct os_q /*队列控制块队列控制块QCB*/struct os_q *OSQPtr;/*在空闲在空闲QCB链表中,指示下一个链表中,指示下一个QC
10、B*/void *OSQStart;/*队列数据的首地址队列数据的首地址*/void *OSQEnd;/*队列数据的末地址队列数据的末地址*/void *OSQIn;/*指示下次插入消息的位置指示下次插入消息的位置*/void *OSQOut;/*指示下次提取消息的位置指示下次提取消息的位置*/INT16U OSQSize;/*队列的最大容量队列的最大容量*/INT16U OSQEntries;/*队列中当前的消息量队列中当前的消息量*/OS_Q;2消息控制块实体消息控制块实体 OS_Q OSQTblOS_MAX_QS;3空闲消息队列链表 消息控制块QCB中OSQWaitList用来指示空闲消
11、息控制块QCB链表中的下一个消息控制块QCB。作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统原理与实践嵌入式实时操作系统原理与实践5.2.2 初始化消息队列初始化消息队列消息队列初始化函数在操作系统初始化时被调用,主要用于初始化消息队列使用的数据结构。消息队列初始化函数的名称为OS_QInit表5.13消息队列初始化函数OS_QInit解析1.将所有QCB全部清为全0。2.使用for循环将除最后一个消息控制块OS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 嵌入式 实时 操作系统 COS 原理 实践 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内