新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM處理器的工作模式(一)

        ARM處理器的工作模式(一)

        作者: 時間:2016-11-21 來源:網絡 收藏
        實驗目的:
        1. 掌握ARM的各種工作模式
        2. 熟悉ARM各種工作模式下的寄存器
        3. 學會使用軟件實現ARM工作模式間的切換。
        實驗內容:
        使用MSR/MRS指令切換工作模式,并初始化各工作模式下的堆棧指針
        觀察ARM在各種工作模式下寄存器的區別。
        觀察ARM在各種工作模式間切換時各寄存器的變化情況。


        實驗一 使用MSR/MRS指令切換工作模式實驗(ARM7)(exp9_exa.s)
        AREA INIT,CODE,READONLY
        ENTRY
        B RESET_HANDLER ;管理模式SVC
        UNDEFINED_HANDLER
        B UNDEFINED_HANDLER
        B SWI_HANDLER
        PREFETCH_HANDLER
        B PREFETCH_HANDLER
        ABORT_HANDLER
        B ABORT_HANDLER
        NOP
        IRQ_HANDLER
        B IRQ_HANDLER
        FIQ_HANDLER
        B FIQ_HANDLER
        SWI_HANDLER
        MOV PC,LR

        RESET_HANDLER
        MOV R0,#0X000001F0 ;初始化R0( IFT=1;用戶模式
        LDR R1,=0xF0000000
        STR R0,[R1] ;保存R0
        MRS R0,CPSR ;CPSR——>R0
        MOV R13,#1 ;寫入R13=1
        MOV R14,#2 ;寫入R14=2

        MRS R0,CPSR ;CPSR——>R0
        LDR R1,=0xF0000000
        STR R0,[R1] ;保存R0


        BIC R0,R0,#0x1F
        ORR R0,R0,#0x10 ;改寫R0
        MSR CPSR_c,R0 ;R0——> CPSR (切換至用戶模式USR)
        MOV R13,#3 ;寫入R13=3

        MOV R14,#4 ;寫入R14=4

        STOP B STOP
        END
        本實驗使用MSR/MRS指令完成系統初始化過程中從管理模式到用戶模式的切換,采用ARMmulator方式調試,選用ARM7作為目標處理器
        單步運行程序,觀察ARM寄存器、存儲空間和工作模式的變化情況,并填入表中。
        序號執行指令指令執行后的變化情況
        寄存器存儲空間工作模式
        R0R1R13_SVCR14_SVCR13_USRR13_USRR15CPSR0xF000000
        0
        1B RESET_HANDLER
        2MOV R0,#0X000001F0
        3LDR R1,=0xF0000000
        4STR R0,[R1]
        5MRS R0,CPSR
        6MOV R13,#1
        7MOV R14,#2
        8MRS R0,CPSR
        9BIC R0,R0,#0x1F
        10ORR R0,R0,#0x10
        11MSR CPSR_c,R0
        12MOV R13,#3
        13MOV R14,#4



        關鍵詞: ARM處理器工作模

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 龙门县| 阿图什市| 嘉禾县| 岢岚县| 寿光市| 张家口市| 安义县| 郧西县| 遂平县| 玛纳斯县| 芮城县| 丹寨县| 施秉县| 双牌县| 长垣县| 平凉市| 贡觉县| 新邵县| 霍山县| 富蕴县| 汝阳县| 伊金霍洛旗| 三亚市| 长子县| 山阳县| 始兴县| 博湖县| 昆山市| 和静县| 天长市| 乃东县| 临西县| 宁明县| 平谷区| 鹤山市| 三亚市| 北海市| 石棉县| 仲巴县| 平昌县| 毕节市|