码迷,mamicode.com
首页 > 其他好文 > 详细

UCOS中的消息队列并不是真正意义上的队列

时间:2014-09-01 10:40:52      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:os   数据   sp   c   size   不同的   bs   r   指针   

 

UCOS中的消息队列并不是真正意义上的队列,它只是发送了想要发送数据的指针,这个时候,如果发送多个同一个变量的不同数据,那么数据就相当于被覆盖了.

解决办法:

  定义一个缓存数组buffer[i];

  更改变量i的数值,就可以实现一个变相的FIFO,因为每次发送的变量的指针是不同的.

  i++;

  i %= bufsize;

  buffer[ ( i + bufsize - 1 ) % bufsize ];  //此处是取的上一个数据,当前数据直接取buffer[i]即可.

UCOS中的消息队列并不是真正意义上的队列

标签:os   数据   sp   c   size   不同的   bs   r   指针   

原文地址:http://www.cnblogs.com/Lifescoding/p/3945575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!