打印
[STM32F0]

ucos 全局变量如何使用

[复制链接]
1045|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ideafor|  楼主 | 2016-4-22 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义了一个全局变量,在两个任务中都想使用,但是呢,有可能发生同时使用的情况。现在想呢其中一个使用的过程中另外一个不能用,用什么样的方法可以做到呢?互斥信号量能做到吗?

沙发
尤彼卡| | 2016-4-22 19:47 | 只看该作者
UCOS不宜使用全局变量

使用特权

评论回复
板凳
Ryze| | 2016-4-22 21:45 | 只看该作者
全局变量就意味着使用此变量的函数不可重入,多任务中会常常发生函数重入。因而在操作系统要用互斥信号等方法,让只有唯一个函数使用某个全局变量

使用特权

评论回复
地板
ticomi| | 2016-4-23 08:53 | 只看该作者
这个方式有很多:信号量保护,互斥信号量,锁调度,禁用中断等等都可以。关键是看具体的情况。如果只是简单的赋值或者取值操作,可以考虑禁用中断,毕竟时间很短。如果操作时间过长则可以考虑互斥信号量等。

使用特权

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

本版积分规则

30

主题

149

帖子

1

粉丝