打印
[应用相关]

给内存里一个u32的变量赋值的操作能够被中断么?

[复制链接]
3217|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
enjoyic|  楼主 | 2008-12-15 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
给内存里一个u32的变量赋值的操作能够被中断么?

我在中断的外面对一个u32的变量赋值,会不会在外面赋值一部分的时候,进了中断。这样,我在中断里面读到的这个变量值就不准了

恳请高手指教
沙发
HWM| | 2008-12-15 12:27 | 只看该作者

若是两条指令以上完成此操作,就可能被中断。

使用特权

评论回复
板凳
香水城| | 2008-12-15 12:29 | 只看该作者

不同的CPU,不同的编译器,结果也不同

使用特权

评论回复
地板
xwj| | 2008-12-15 12:31 | 只看该作者

若是中断程序 完好的保留了现场,则没问题

当然,会因其他原因改变的寄存器除外

使用特权

评论回复
5
enjoyic|  楼主 | 2008-12-15 13:02 | 只看该作者

楼上何方神圣?为何有此签名

使用特权

评论回复
6
HWM| | 2008-12-15 13:05 | 只看该作者

那“神圣”是你的IE

使用特权

评论回复
7
enjoyic|  楼主 | 2008-12-15 13:07 | 只看该作者

在别处看到说编译紧缩模式(即非对齐),会造成分两次操

在别处看到说编译紧缩模式(即非对齐),会使得位置不在4整数倍的变量分两次操作。
STM32会这样么?
STM32对一个u32变量赋个常数是原子操作么?

使用特权

评论回复
8
HWM| | 2008-12-15 13:13 | 只看该作者

和排版无关,Cortex M3中u32变量赋常数一般应是两条以上指令

使用特权

评论回复
9
chinabig| | 2008-12-24 11:03 | 只看该作者

不会的

32位CPU,对32位变量的操作必然是原子操作

使用特权

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

本版积分规则

34

主题

63

帖子

0

粉丝