【uC/OS-II|uC/OS-II 学习笔记之(信号量、消息邮箱、消息队列之间的使用区别)】//
更多原创“uC/OS-II学习笔记之:系列”基础及嵌入式相关知识详解,请访问可乐虎博客:
http://blog.csdn.net/dcx1205
相信不会让您失望!!
//
1、用信号量进行行为同步时,只能提供同步的时刻信息,不能提供内容信息。若被控制方要求得到控制方的内容信息时,可以使用消息邮箱或消息队列。
2、但由于消息邮箱里只能存放一条消息,所以使用消息邮箱进行任务的同步时,需要满足一个条件:消息的产生速度总要慢于消息的消费速度,即被控制任务总是在等待消息,否则会导致消息丢失。
3、若遇到出现消息的产生速度可能快于消息的消费速度的情况时,则可以使用比消息邮箱更为强大的消息队列,由于消息队列可以存放多条消息,所以消息队列能够有效解决消息的临时堆积问题。但消息队列的使用仍然需满足一个条件:消息的平均生产速率比消息的平均消费速率低,否则再长的消息队列也会溢出。
个人认为:若理解了这几句话,就算是了解了μC/OS-II通信的精华!
参:周航慈 吴光文 《基于嵌入式实时操作系统的程序设计技术》