【发布时间】:2012-03-13 09:19:30
【问题描述】:
这是我的代码:
volatile uint32_t value = *((volatile uint32_t *) 0xA0000000); // here `value` is 12498
value *= 2; // here `value` is still 12498
value |= 0x0000001; // still 12498
在我的调试器中分析变量value 时,它在所有行上都具有相同的值。我做错了什么?
【问题讨论】:
-
也许您的调试器没有正确处理 volatile?
-
为什么不只使用一些跟踪并检查实际程序的行为,而不是依赖调试器来进行验证。
-
你用的是什么处理器?
-
顺便问一下,您是从硬编码地址
0xA0000000中读取一个uint 吗?现在这是什么巧妙的技巧(或者我错过了什么)? -
@DipSwitch:ARM Cortex M3。