[uCOS/RTOS] 关于全局变量的读写操作

[复制链接]
3574|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 | 显示全部楼层
你可以锁中断。
Miltonliu2010 发表于 2013-11-2 15:25 | 显示全部楼层
建议用临界区的办法,用开关中断进行加锁。或者使用信号量加锁。
maxwelllls 发表于 2013-11-3 15:55 | 显示全部楼层
操作前关中断
棋哥 发表于 2013-11-12 13:26 | 显示全部楼层
Cortex M3已经开始支持互斥访问了,但是还没有OS用到这个功能!锁中断,关调度,还有信号量都可以满足要求,但都存在一些丢中断的风险!~
zhangkef0904 发表于 2013-11-20 17:32 | 显示全部楼层
都没说清楚是什么系统下加的锁,让别人怎么加答?
Linux 有 Linux 的方法,uC/OS 有 uC/OS 的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部