[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編譯

相關文章
相關標籤/搜索