×
单片机 > 单片机程序设计 > 详情

ARM状态和编译器状态统一

发布时间:2020-05-29 发布时间:
|
整个预编译段就是为了说明要ARM的当前状态和编译器的状态要统一。这是个标准的例子,实际大多数情况不需要。但是上面的config==16只说明你编译器当前在使用的TASM.EXE 但你现在 Thumb-capable ARM processors start in ARM state(注意是MCU的状态和编译器无关)。所以要使两者一致编译出来的代码才能被运行,使用CODE32 使编译器也处于ARMASM.EXE状态,CODE16/32只会影响编译器,只有BX会改变processors state.只要两者一致就好

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

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

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

关键字:ARM状态  编译器  状态统一 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法