久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    bootloader之ARM的處理器模式

     ccbupt 2009-05-12

    ARM異常中斷處理概述

    當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。
    ARM體系結構中的異常,與8位/16位體系結構的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。

    ARM體系結構所支持的異常類型

    異常類型                           具體含義
    復位                         復位電平有效時,產生復位異常,程序跳轉到復位處理程序處執行。
    未定義指令          遇到不能處理的指令時,產生未定義指令異常。
    軟件中斷                 執行SWI指令產生,用于用戶模式下的程序調用特權操作指令。
    指令預取中止        處理器預取指令的地址不存在,或該地址不允許當前指令訪問,產生
    指令預取中止異常。
    數據中止                處理器數據訪問指令的地址不存在,或該地址不允許當前指令訪問時,產生數據中止異常。
    IRQ                         外部中斷請求有效,且CPSR中的I位為0時,產生IRQ異常。
    FIQ                      快速中斷請求引腳有效,且CPSR中的F位為0時,產生FIQ異常。

    異常向量表(Exception Vectors)

    地址                                   異常                                  進入模式

    0x0000,0000                 復位                                      管理模式

    ox0000,0004                 未定義指令                          未定義模式

    0x0000,0008                  軟件中斷                              管理模式

    0x0000,000c                 中止(預存指令)            中止模式

    0x0000,0010                中止(數據)                    中止模式

    0x0000,0014                  保留                                     保留

    0x0000,0018                 IRQ                                         IRQ

    0x0000,001c                  FIQ                                        FIQ

    異常優先級(Exceprion Priorities)

    優先級                             異常

    1(最高)                        復位

    2                                        數據中止

    3                                        FIQ

    4                                        IRQ

    5                                        預取指令

    6(最低)                        未定義指令、SWI

    對異常的響應

    當一個異常出現以后,ARM微處理器會執行以下幾步操作

    1、將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。
    2、將CPSR復制到相應的SPSR中。
    3、根據異常類型,強制設置CPSR的運行模式位。
    4、強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。

    異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:

    1、將連接寄存器LR的值減去相應的偏移量后送到PC中。
    2、將SPSR復制回CPSR中。
    3、若在進入異常處理時設置了中斷禁止位,要在此清除。

    可以認為應用程序總是從復位異常處理程序開始執行的,因此復位異常處理程序不需要返

    中斷處理程序的安裝

    一般在系統的啟動代碼中安裝異常處理程序。大致可以分為兩種情況:

    1、地址處存儲器為ROM/FLASH
    2、地址處存儲器為RAM

    在ROM/FLASH中安裝中斷處理程序

    在ROM/FLASH的異常中斷向量表中,可以使用LDR指令直接向程序計數器PC中賦值,也可以直接使用跳轉指令轉到異常中斷處理程序。

    當0地址處為ROM時,將跳轉指令安裝在0地址處:
    中斷向量表:
    b SYS_RST_HANDLER   ;0x00000000
    b UDF_INS_HANDLER    ;0x00000004
    b SWI_SVC_HANDLER   ;0x00000008
    b INS_ABT_HANDLER     ;0x0000000c
    b DAT_ABT_HANDLER   ;0x00000010
    b .                                         ;nop
    b IRQ_SVC_HANDLER    ;0x00000018
    b FIQ_SVC_HANDLER    ;0x0000001c

    ;為中斷向量分配地址空間,此空間處為RAM的地址
    MAP _ISR_STARTADDRESS
        SYS_RST_VECTOR      # 4  
        UDF_INS_VECTOR      # 4
       SWI_SVC_VECTOR    # 4
       INS_ABT_VECTOR      # 4
        DAT_ABT_VECTOR      # 4
        RESERVED_VECTOR   # 4
       IRQ_SVC_VECTOR     # 4
        FIQ_SVC_VECTOR     # 4

    RAM中安裝中斷處理程序

    當0地址處為RAM時,中斷向量表必須使用數據讀取指令直接指向PC中賦值的形式。而且必須把中斷向量從ROM中復制到RAM地址的0地址處。

    MOV r8, #0   ;
    ADR r9, Vector_Init_Block
    LDMIA r9!, {r0-r7}
    STMIA r8!, {r0-r7}



    ARM處理器共有7種不同的處理器模式:

    1、用戶模式(User)2、快速中斷模式(FIQ)3、外部中斷模式(IRQ)4、特權模式(SVC)5、數據訪問中止模式(ABT)6、未定義指令中止模式(UND)7、系統模式(SYS)

     

    除了用戶模式以外的其他6種處理器模式稱為特權模式。在這些模式下,程序可以訪問所有的系統資源,也可以任意地進行處理器的模式切換。ARM內部寄存器和一些片內外設在硬件設計上只允許(或者可選為只允許)特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。

    其中,除了用戶模式、系統模式以外,其他5種特權模式又稱為異常模式。它們除了可以通過程序切換進入外,也可以由特定的異常進入。當特定的異常出現時,處理器進入相應的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態不可靠。

    用戶和系統模式這兩種模式都不能由異常進入,而且它們使用完全相同的寄存器組。

    系統模式是特權模式,不受用戶模式的限制。操作系統在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統的一些特權任務可以使用這個模式訪問一些受控的資源。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 久久夜色撩人精品国产小说| 亚洲国产精品福利片在线观看 | 中国熟妇毛多多裸交视频| 性虎精品无码AV导航| 亚州少妇无套内射激情视频 | 国产成人乱色伦区| 国产精品中文字幕日韩| 色一乱一伦一图一区二区精品| 性一交一乱一伦| 一本一本久久A久久精品综合不卡| 中文乱码人妻系列一区二区| 午夜福利片1000无码免费| 美女黄18以下禁止观看| 久久精品国产99国产精品严洲| 夜色爽爽影院18禁妓女影院| 国产精品中文字幕观看| 国产激情无码一区二区APP| 男女激情一区二区三区| 国产成人无码A区在线观看视频| 国产美女被遭强高潮免费一视频| 无码人妻精品一区二区三区蜜桃 | 国产超高清麻豆精品传媒麻豆精品| 黑巨茎大战俄罗斯美女| 少妇高潮水多太爽了动态图| 英语老师解开裙子坐我腿中间| 东北寡妇特级毛片免费| 玩弄放荡人妻少妇系列| 少妇人妻在线视频| 亚洲V天堂V手机在线| 天天爽夜夜爱| 国产精品乱码久久久久久软件| 精品国产丝袜自在线拍国语| 中国女人高潮hd| 国产精品视频第一区二区三区| 国产美女精品自在线拍免费| 国产乱啊有帅gv小太正| 免费久久人人爽人人爽AV| 亚洲欧洲日产国码无码AV喷潮| 白嫩少妇无套内谢视频| 东京热一精品无码av| 亚洲日韩欧美一区二区三区|