OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3184|回复: 3

求组,ucos中 数组的传递

[复制链接]

24

主题

86

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2013-8-15
在线时间
6 小时
发表于 2015-4-8 10:54:57 | 显示全部楼层 |阅读模式
5金钱
新手,问下,ucos中,数组不用全局变量后, 怎么传递数据?
用邮箱可以吧? 把数组首地址传过去就可以了吧???

搞不明白队列的意义,就是一次传输多个邮箱???
队列中OS_Q 里面是数组指针没错吧?

最佳答案

查看完整内容[请看2#楼]

1、UCOS中消息邮箱或者队列传递所传递的消息(也就是你的数组)要保持可见性,也就是说一直到你这个消息被处理掉这段时间内,你的数组都要存在,如果你的数组是定义的全局数组那么就没有这个问题,肯定会一直存在的。但是如果你是在一个函数里面定义的数组,也就局部变量的话,那么在退出函数的时候会释放掉这个数组所占用的内存,这时就不能用消息邮箱传递,不过你可以在函数中定义数组的时候加static将其定义为静态的,这样在退出 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-4-8 10:54:58 | 显示全部楼层
1、UCOS中消息邮箱或者队列传递所传递的消息(也就是你的数组)要保持可见性,也就是说一直到你这个消息被处理掉这段时间内,你的数组都要存在,如果你的数组是定义的全局数组那么就没有这个问题,肯定会一直存在的。但是如果你是在一个函数里面定义的数组,也就局部变量的话,那么在退出函数的时候会释放掉这个数组所占用的内存,这时就不能用消息邮箱传递,不过你可以在函数中定义数组的时候加static将其定义为静态的,这样在退出函数的时候就不会释放掉内存。消息邮箱或队列传递的是消息的首地址!
2、队列一次可以传递多个消息,所传递的也是每个消息的首地址。
开往春天的手扶拖拉机
回复

使用道具 举报

24

主题

86

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2013-8-15
在线时间
6 小时
 楼主| 发表于 2015-4-8 14:11:39 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
问下。。。如果我要处理数组怎么办?
定义全局变量的数组?可以定义吗?
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-4-8 15:08:58 | 显示全部楼层
可以定义为全局数组,或者你可以动态内存管理的方式
开往春天的手扶拖拉机
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 22:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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