整個(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://www.ex-cimer.com/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)論