消息邮箱的本质和可能出现的问题

消息邮箱的本质是把一个(局部)变量(一片内存空间)的地址发送给相应的任务。

这要求这片内存区域是一直能被被访问的,如果这片内存区域是在任务中定义的,因为任务是一次没有结束的,所以,这片内存不会被释放;而如果是在中断函数中定义的,则应该定义为静态变量,来保证这片内存不会被释放。

另外一个问题,以串口接收为例,串口接收中断把消息发给其他任务,如果数据还没有来得及被处理,串口又收到了一包新的数据,那么缓存中的数据可能就会被更新,导致数据错误。这就对串口数据的传输间隔和数据的处理速度提出了要求。应该在任务设计时做考虑。具体怎么考虑,还在继续学习。先给自己把问题提在这里。

分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e6%b6%88%e6%81%af%e9%82%ae%e7%ae%b1%e7%9a%84%e6%9c%ac%e8%b4%a8%e5%92%8c%e5%8f%af%e8%83%bd%e5%87%ba%e7%8e%b0%e7%9a%84%e9%97%ae%e9%a2%98/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名