整個預編譯段就是為了說明要ARM的當前狀態(tài)和編譯器的狀態(tài)要統(tǒng)一。這是個標準的例子,實際大多數(shù)情況不需要。但是上面的config==16只說明你編譯器當前在使用的TASM.EXE 但你現(xiàn)在 Thumb-capable ARM processors start in ARM state(注意是MCU的狀態(tài)和編譯器無關)。所以要使兩者一致編譯出來的代碼才能被運行,使用CODE32 使編譯器也處于ARMASM.EXE狀態(tài),CODE16/32只會影響編譯器,只有BX會改變processors state.只要兩者一致就好;Check if tasm.exe(armasm -16@ADS1.0) is used.
GBLL THUMBCODE
[ {CONFIG} = 16
THUMBCODE SETL {TRUE}
CODE32
|
THUMBCODE SETL {FALSE}
]
本文引用地址:http://m.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
評論