Ucos中文书(邵贝贝)任务之间的通讯与同步

上传人:工**** 文档编号:441036 上传时间:2017-02-25 格式:DOC 页数:44 大小:768KB
返回 下载 相关 举报
Ucos中文书(邵贝贝)任务之间的通讯与同步_第1页
第1页 / 共44页
Ucos中文书(邵贝贝)任务之间的通讯与同步_第2页
第2页 / 共44页
Ucos中文书(邵贝贝)任务之间的通讯与同步_第3页
第3页 / 共44页
Ucos中文书(邵贝贝)任务之间的通讯与同步_第4页
第4页 / 共44页
Ucos中文书(邵贝贝)任务之间的通讯与同步_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《Ucos中文书(邵贝贝)任务之间的通讯与同步》由会员分享,可在线阅读,更多相关《Ucos中文书(邵贝贝)任务之间的通讯与同步(44页珍藏版)》请在金锄头文库上搜索。

1、 章 任务之间的通讯与同步 . 事件控制块 . 初始化一个 ,. 使一个任务进入就绪状态,. 使一个任务进入等待状态, . 由于等待超时将一个任务置为就绪状态, . 信号量 .立一个信号量, .待一个信号量, .送一个信号量, .等待地请求一个信号量, .询一个信号量的当前状态, . 邮箱 .立一个邮箱, .待一个邮箱中的消息, .送一个消息到邮箱中, .等待地从邮箱中得到一个消息, .询一个邮箱的状态, .用邮箱作为二值信号量 .用邮箱实现延时,而不使用 . 消息队列 .立一个消息队列, .待一个消息队列中的消息, .消息队列发送一个消息( .消息队列发送一个消息( .等待地从一个消息队列中

2、取得消息, .空一个消息队列, .询一个消息队列的状态, .用消息队列读取模拟量的值 .用一个消息队列作为计数信号量 . 章 任务之间的通讯与同步在 C/,有多种方法可以保护任务之间的共享数据和提供任务之间的通讯。在前面的章节中,已经讲到了其中的两种:一是利用宏 和 来关闭中断和打开中断。当两个任务或者一个任务和一个中断服务子程序共享某些数据时,可以采用这种方法,详见 临界段、 和 及 临界段,是利用函数 和 对 C/的任务调度函数上锁和开锁。用这种方法也可以实现数据的共享,详见 给调度器上锁和开锁。本章将介绍另外三种用于数据共享和任务通讯的方法:信号量、邮箱和消息队列。图 绍了任务和中断服务

3、子程序之间是如何进行通讯的。一个任务或者中断服务子程序可以通过事件控制块 向另外的任务发信号)。这里,所有的信号都被看成是事件(这也说明为什么上面把用于通讯的数据结构叫做事件控制块。一个任务还可以等待另一个任务或中断服务子程序给它发送信号)。这里要注意的是,只有任务可以等待事件发生,中断服务子程序是不能这样做的。对于处于等待状态的任务,还可以给它指定一个最长等待时间,以此来防止因为等待的事件没有发生而无限期地等下去。多个任务可以同时等待同一个事件的发生在这种情况下,当该事件发生后,所有等待该事件的任务中,优先级最高的任务得到了该事件并进入就绪状态,准备执行。上面讲到的事件,可以是信号量、邮箱或

4、者消息队列等。当事件控制块是一个信号量时,任务可以等待它,也可以给它发送消息。6件控制块 过 定义的 据结构来维护一个事件控制块的所有信息程序清单 也就是本章开篇讲到的事件控制块 结构中除了包含了事件本身的定义,如用于信号量的计数器,用于指向邮箱的指针,以及指向消息队列的指针数组等,还定义了等待该事件的所有任务的列表。程序清单 该数据结构的定义。6 * /* 指向消息或者消息队列的指针 */ /* 等待任务列表 */ /* 计数器(当事件是信号量时) */ /* 时间类型 */ /* 等待任务所在的组 */ 针,只有在所定义的事件是邮箱或者消息队列时才使用。当所定义的事件是邮箱时,它指向一个消

5、息,而当所定义的事件是消息队列时,它指向一个数据结构,消息邮箱和 消息队列。 和 像前面讲到的 和 不过前两者包含的是等待某事件的任务,而后两者包含的是系统中处于就绪状态的任务。(见 就绪表)事件是一个信号量时,用于信号量的计数器,(见 义了事件的具体类型。它可以是信号量(邮箱(消息队列(的一种。用户要根据该域的具体值来调用相应的系统函数,以保证对其进行的操作的正确性。每个等待事件发生的任务都被加入到该事件事件控制块中的等待任务列表中,两个域。变量前面的.说明该变量是数据结构的一个域。在这里,所有的任务的优先级被分成 8 组(每组 8 个优先级),的 8 位。当某组中有任务处于等待该事件的状态时,对应的位就被置位。相应地,中的对应位也被置位。数组的大小由系统中任务的最低优先级决定,这个值由 的 数定义。这样,在任务优先级比较少的情况下,减少 C/系统 占用量。当一个事件发生后,该事件的等待事件列表中优先级最高的任务,中,所有被置 1 的位中,优先级代码最小的任务得到该事件。图 之间的对应关系。该关系可以描述为:中的任何一位为 1 时,的第 0 位为 1。中的任何一位为 1 时,的第 1 位为 1。中的任何一位为 1 时,的第 2 位为 1。中的任何一位为 1 时,的第 3 位为 1。中的任何一位为 1 时,的第 4 位为 1。中的任何

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 嵌入式开发/单片机

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号