uCOS-IIwilliam hill官网
直播中

nycko

9年用户 3经验值
擅长:可编程逻辑
私信 关注
[问答]

关于ucos的邮箱的问题,跟全局变量或者用指针直接读某地址有什么区别?

初学UCOS没多久,据说使用系统最好别用全局变量,于是用邮箱来传递,做邮箱实验时发现:
我先创建了一个邮箱M,然后task1中 把局部变量a放到邮箱,其实就是把a的地址赋值给邮箱M中OSEventPtr;
然后task2中,申请邮箱M,然后OSMboxPend返回的是一个指针,那就定义了一个 u8 *b(局部)来接受,其实OSMboxPend返回的就是OSEventPtr也就是a的地址;
那我的疑惑就来了,,那最终就是让*b指向了a,懂的人教一下,首先这理解对不对啊?对的话那跟我定义一个全局变量给两个任务使用有什么不一样??

回帖(4)

h1654155956.5608

2016-7-12 11:08:35
他帮你封装好,这样你运用或者以后其他人接手你的工作看代码都会省事。
举报

668301

2016-7-17 10:39:21
理解是对的,但是不能用全局变量给两个任务用。这是应为有U同步有互斥,一个全局变量两个任务都可以赋值的,等待如何解决?
举报

叶波

2016-8-25 10:59:31
实现的效果是一样的,如果用全局变量等于没有用到UCOS的精髓了,
举报

张高明

2017-7-25 11:32:40
理解是对的,但是不能用全局变量给两个任务用。这是应为有U同步有互斥,一个全局变量两个任务都可以赋值的,等待如何解决?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分