新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM狀態和編譯器狀態統一

        ARM狀態和編譯器狀態統一

        作者: 時間:2016-11-11 來源:網絡 收藏
        整個預編譯段就是為了說明要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@ADS1.0) is used.
        GBLL THUMBCODE
        [ {CONFIG} = 16
        THUMBCODE SETL {TRUE}
        CODE32
        |
        THUMBCODE SETL {FALSE}
        ]

        本文引用地址:http://www.104case.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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 通榆县| 宁夏| 香格里拉县| 伊宁市| 庆元县| 山丹县| 望奎县| 洛宁县| 台中市| 琼中| 徐汇区| 方山县| 阜平县| 探索| 皋兰县| 卓尼县| 开远市| 孝感市| 乐平市| 通道| 雅安市| 开原市| 财经| 泸溪县| 中超| 龙南县| 织金县| 铜山县| 隆回县| 乌鲁木齐市| 丹凤县| 苏尼特左旗| 镇安县| 巴林右旗| 西充县| 万源市| 惠东县| 鹤峰县| 茌平县| 莱芜市| 鄱阳县|