打印
[uCOS/RTOS]

关于全局变量的读写操作

[复制链接]
2575|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kkong522|  楼主 | 2013-8-27 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般来说,在嵌入式系统中,全局变量的访问需要加锁,但是如果刚刚加上锁,还没有改变这个变量的值,某个中断来到,这个中断需要对这个全局变量进行写操作,那么这就会死锁么?那这样我们的全局变量还需要加锁么?在中断处理函数中的全局变量写需要加锁么?

相关帖子

沙发
jamsan| | 2013-8-27 17:11 | 只看该作者
建议中断处理函数通过发送消息的办法,由线程来处理。另外个人觉得,加锁是针对任务来说,中断不属于任务。

使用特权

评论回复
板凳
xinzha| | 2013-8-27 17:54 | 只看该作者
中断中不能进行阻塞操作,否则必死

使用特权

评论回复
地板
guiguiyiha| | 2013-8-31 19:37 | 只看该作者
你可以锁中断。

使用特权

评论回复
5
Miltonliu2010| | 2013-11-2 15:25 | 只看该作者
建议用临界区的办法,用开关中断进行加锁。或者使用信号量加锁。

使用特权

评论回复
6
maxwelllls| | 2013-11-3 15:55 | 只看该作者
操作前关中断

使用特权

评论回复
7
棋哥| | 2013-11-12 13:26 | 只看该作者
Cortex M3已经开始支持互斥访问了,但是还没有OS用到这个功能!锁中断,关调度,还有信号量都可以满足要求,但都存在一些丢中断的风险!~

使用特权

评论回复
8
zhangkef0904| | 2013-11-20 17:32 | 只看该作者
都没说清楚是什么系统下加的锁,让别人怎么加答?
Linux 有 Linux 的方法,uC/OS 有 uC/OS 的方法

使用特权

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

本版积分规则

5

主题

24

帖子

0

粉丝