搜索
bottom↓
回复: 4

正在看RTT,有一事不明,RTT的邮箱可以接收多个消息缓冲着,那邮箱和消息队列还有什么区别

[复制链接]

出0入0汤圆

发表于 2012-2-2 15:08:30 | 显示全部楼层 |阅读模式
之前看的是UCOS,上面说的都是消息队列就是数组版本的邮箱,大致是这个意思,现在邮箱有多则消息了,就不清楚区别了,受了UCOS的老思想了,各位不要见笑

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-2-2 18:41:32 | 显示全部楼层
个人理解,邮箱发送的事消息的指针,而消息队列直接发送的是消息本身。

出0入0汤圆

 楼主| 发表于 2012-2-2 21:42:39 | 显示全部楼层
回复【1楼】tiancaigao7 天才杨威利
个人理解,邮箱发送的事消息的指针,而消息队列直接发送的是消息本身。
-----------------------------------------------------------------------

谢谢回复,我一开始想想感觉也只能这样想了,但是看了一下接口函数用的是指针,想想传的应该是指针,但你这么一说又回过去看函数,感觉也有可能传的是实际数据,贴一下原例程
46 while (1)
47 {
48 for (i = 0; i < 10; i++)
49 {
50 buf[sizeof(buf) - 2] = '0' + i;
51
52 rt kprintf("thread2: send message - %s\n", buf);
53 /* 发送消息到消息队列中*/
54 result = rt mq send(&mq, &buf[0], sizeof(buf));
55 if ( result == -RT EFULL)
56 {
57 /* 消息队列满, 延迟1s时间*/
58 rt kprintf("message queue full, delay 1s\n");
59 rt thread delay(100);
60 }
61 }
62
63 /* 延时10个OS Tick */
64 rt thread delay(10);
65 }

如果真的传输的是数据,那这个例程等于一次传送了10个消息队列了??忘高手指教一下

出0入0汤圆

 楼主| 发表于 2012-2-3 15:08:39 | 显示全部楼层
自己顶一下,知道的麻烦给个说法

出0入0汤圆

发表于 2012-2-3 16:57:18 | 显示全部楼层
很显然,邮箱每次只能是4个字节
消息队列则长度没有这个限制

另外邮箱有发送满时阻塞功能
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-11 15:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表