[Arm] arm常见问题记录

2015.5.25 什么是volatile?

volatile的做用是: 做为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值优化

由于编译器会优化代码,所以而省略掉一些编译器认为“没用”的代码,但实际上咱们须要保留他们。
例如:code

cXBYTE[2]=0x55;
XBYTE[2]=0x56;
XBYTE[2]=0x57;
XBYTE[2]=0x58;

编译器只会保留最后一句指令,可是所有加上volatile以后编译器就会生成四条指令。编译器

2015.5.25 _WDWORD()的做用?

_WDWORD(0xE0042004, 0x00000027); // DBGMCU_CR
这一句表示想 0xE0042004地址处写入 0x000000027,这个寄存器是各个位表示的含义在注释中给出了详细的解释。 0x27即表示
BIT0 DBG_SLEEP
BIT1 DBG_STOP
BIT2 DBG_STANDBY
BIT5 TRACE_IOEN编译

相关文章
相关标签/搜索