打印
[STM32F4]

UCOS III通过消息队列发送数据到一个任务,但是任务收到的数据却不是发送的数据

[复制链接]
3508|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
numbqq|  楼主 | 2015-11-19 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
系统用到UCOS III,但在运行一段时间(几小时到几天不等)后发现偶尔会出现这样一种现象就是消息队列发送的数据与任务接收的数据不同,我是在中断中发送消息到一个任务,但偶尔会出现任务收到的数据与发送的数据不同的情况,请教一下各位有碰到过类似的情况没有?
沙发
numbqq|  楼主 | 2015-11-19 18:26 | 只看该作者
没人碰到过么

使用特权

评论回复
板凳
numbqq|  楼主 | 2015-11-20 11:48 | 只看该作者

使用特权

评论回复
地板
lin704932121| | 2015-12-8 22:28 | 只看该作者
我用的是uC/OS-III  v3.03,至今没遇到过这种情况,应该是你内存分配和释放有问题。
我常用的做法是:
中断:
mem = OSMemGet();
OSTaskQpost(mem);
任务:
mem = OSTaskQPend();
OSMemFree(mem);

使用特权

评论回复
5
jn152| | 2016-1-13 09:55 | 只看该作者
发消息的地址空间被改掉了,加个互斥锁试试

使用特权

评论回复
6
ccw1986| | 2016-4-14 22:16 | 只看该作者
我现在是发送信号量总是导致程序无法调度,不知道为什么呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

1

粉丝