关于UCOS下邮箱使用的两个经验
来源:互联网 发布:安装h3c云计算cas 编辑:程序博客网 时间:2024/05/21 21:49
在使用UCOS的邮箱时,遇到一些问题,现将一些小总结写下,希望对大家有所帮助。
邮箱使用总结
1.数据的存放。
邮箱一般用来传递数据,不管何种类型都可以传递。在传递时,先把数据数据用void *进行类型变化,化为void *这种万用类型,而在接收邮箱的数据时,再还原成本身的数据类型。比如以下的两个例子:
一是传递指向一个数组的指针。发端采用如下方式:
OSMboxPost(ComSendMbox, (void *)ComBufRec);
其中的ComBufRec就是数组名,也表示指向该数组的指针,将原来的字符型数组名(或指针)变成(void *)类型,而接收端,利用
send_ptr = (uint8 *)OSMboxPend(ComSendMbox, 0, &err);
将(void *)类型还原为指针。
二是传递一个字符型变量。发端采用如下方式:
OSMboxPost(KeyMbox, (void *)key_value);
其中的key_value就是字符型变量,将原来的字符型变量变成(void *)类型,而接收端,利用
key = (INT8U)OSMboxPend(KeyMbox, 0, &err);
将(void *)类型还原为字符型变量。
2、关于在邮箱中不能存放传递0值的问题
在邮箱的传递中,如果把一个0值放入邮箱,经过void *类型变化后,变成了void *0,而判断邮箱中是否有数据正是通过判断邮箱中指向Message的指针是否为0来判断,这样虽然放入了一个0变量,但邮箱中却无法判断这个0值,认为邮箱中还是空。
邮箱使用总结
1.数据的存放。
邮箱一般用来传递数据,不管何种类型都可以传递。在传递时,先把数据数据用void *进行类型变化,化为void *这种万用类型,而在接收邮箱的数据时,再还原成本身的数据类型。比如以下的两个例子:
一是传递指向一个数组的指针。发端采用如下方式:
OSMboxPost(ComSendMbox, (void *)ComBufRec);
其中的ComBufRec就是数组名,也表示指向该数组的指针,将原来的字符型数组名(或指针)变成(void *)类型,而接收端,利用
send_ptr = (uint8 *)OSMboxPend(ComSendMbox, 0, &err);
将(void *)类型还原为指针。
二是传递一个字符型变量。发端采用如下方式:
OSMboxPost(KeyMbox, (void *)key_value);
其中的key_value就是字符型变量,将原来的字符型变量变成(void *)类型,而接收端,利用
key = (INT8U)OSMboxPend(KeyMbox, 0, &err);
将(void *)类型还原为字符型变量。
2、关于在邮箱中不能存放传递0值的问题
在邮箱的传递中,如果把一个0值放入邮箱,经过void *类型变化后,变成了void *0,而判断邮箱中是否有数据正是通过判断邮箱中指向Message的指针是否为0来判断,这样虽然放入了一个0变量,但邮箱中却无法判断这个0值,认为邮箱中还是空。
- 关于UCOS下邮箱使用的两个经验
- UCOS下邮箱使用 2010.6.6
- ucos通信邮箱的理解
- uC/OS的消息邮箱使用经验
- ucos中关于信号量的使用总结
- 关于两个外包项目的经验
- ucos-ii学习笔记——消息邮箱的原理及使用
- ucos-ii学习笔记——消息邮箱的原理及使用
- 关于C#下使用轻量级数据库的一些经验
- 关于git的使用经验
- 在COIDE下使用uCOS-II的一些问题
- 搜狐邮箱的Python经验
- ucos邮箱之一
- UCOS邮箱之二
- ucos---消息邮箱
- UCOS之邮箱
- ucos 消息邮箱
- ucos邮箱与队列
- 福昕阅读器(Foxit福昕阅读器(Foxit Reader) 3.0 Build 1506 注册方法
- Web 2.0 and 云计算
- 奔腾还是酷睿?Intel热门CPU型号解析
- 成功篇--成功就具备的一些好习惯(转)
- 关于ieda 比较实用的技术文档搜集
- 关于UCOS下邮箱使用的两个经验
- Web开发中的风险管理
- 最近研究图像文字识别的想法
- Linq
- SecureCRT使用手记(5.5.0)
- ASP.NET AJAX 添加请求处理事件来防止按钮重复提交
- DISKPART——Windows NT磁盘分区工具
- java多线程网络传输文件(非同步)
- 表空间uniform size和 autoallocate的区别