新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM狀態(tài)和編譯器狀態(tài)統(tǒng)一

ARM狀態(tài)和編譯器狀態(tài)統(tǒng)一

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
整個(gè)預(yù)編譯段就是為了說(shuō)明要ARM的當(dāng)前狀態(tài)和編譯器的狀態(tài)要統(tǒng)一。這是個(gè)標(biāo)準(zhǔn)的例子,實(shí)際大多數(shù)情況不需要。但是上面的config==16只說(shuō)明你編譯器當(dāng)前在使用的TASM.EXE 但你現(xiàn)在 Thumb-capable ARM processors start in ARM state(注意是MCU的狀態(tài)和編譯器無(wú)關(guān))。所以要使兩者一致編譯出來(lái)的代碼才能被運(yùn)行,使用CODE32 使編譯器也處于ARMASM.EXE狀態(tài),CODE16/32只會(huì)影響編譯器,只有BX會(huì)改變processors state.只要兩者一致就好

;Check if tasm.exe(armasm -16@ADS1.0) is used.
GBLL THUMBCODE
[ {CONFIG} = 16
THUMBCODE SETL {TRUE}
CODE32
|
THUMBCODE SETL {FALSE}
]

本文引用地址:http://butianyuan.cn/article/201611/316920.htm

MACRO
MOV_PC_LR
[ THUMBCODE
bx lr
|
mov pc,lr
]
MEND

MACRO
MOVEQ_PC_LR
[ THUMBCODE
bxeq lr
|
moveq pc,lr
]
MEND



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉