中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > ARM中斷處理流程

        ARM中斷處理流程

        ——
        作者: 時間:2007-04-19 來源: 收藏

        1.寄存器R16用作CPSR(Current Program Status Register,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。

        每一種運行模式下又都有一個專用的物理狀態(tài)寄存器,稱為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時,SPSR用于保存CPSR的當(dāng)前值,從異常退出時則可由SPSR來恢復(fù)CPSR。

        由于用戶模式和系統(tǒng)模式不屬于異常模式,他們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR,結(jié)果是未知的

           當(dāng)中斷產(chǎn)生的時候,把CPSR保存在SPSR是自動完成的。

         

        對異常的響應(yīng)

        當(dāng)一個異常出現(xiàn)以后,微處理器會執(zhí)行以下幾步操作: (這些是中斷發(fā)生時,自動處理的

        1、將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。若異常是從狀態(tài)進入,LR寄存器中保存的是下一條指令的地址(當(dāng)前PC+4或PC+8,與異常的類型有關(guān));若異常是從Thumb狀態(tài)進入,則在LR寄存器中保存當(dāng)前PC的偏移量,這樣,異常處理程序就不需要確定異常是從何種狀態(tài)進入的。例如:在軟件中斷異常SWI,指令MOV PC,R14_svc總是返回到下一條指令,不管SWI是在狀態(tài)執(zhí)行,還是在Thumb狀態(tài)執(zhí)行。

        2、將CPSR復(fù)制到相應(yīng)的SPSR中。

        3、根據(jù)異常類型,強制設(shè)置CPSR的運行模式位。

        4、強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。

        還可以設(shè)置中斷禁止位,以禁止中斷發(fā)生。

        如果異常發(fā)生時,處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時,處理器自動切換到ARM狀態(tài)

         

        從異常返回

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

        1、將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。

        2、將SPSR復(fù)制回CPSR中。

        3、若在進入異常處理時設(shè)置了中斷禁止位,要在此清除。

        可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。




        關(guān)鍵詞: ARM 中斷處理

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉