1. gzyueqian
      13352868059

      嵌入式培訓機構哪個好?粵嵌詳解ARM的異常中斷響應過程

      更新時間: 2019-03-27 14:56:14來源: 嵌入式培訓瀏覽量:5222

        ARM及嵌入式開發近年越來越熱,特別是android與linux在手機、平板等許多消費類電子及工業設備中越來越成熟的應用。同學們在嵌入式培訓學習過程中會遇到很多問題,其中一個就是——ARM的異常中斷響應過程是怎樣的?

        當發生異常時,除了復位異常立即中止當前指令外,處理器盡量完成當前指令,然后脫離當前的指令處理序列去處理異常。嵌入式培訓總結ARM異常處理器對異常中斷響應過程是這樣子的:

        ① 將CPSR的內存保存到將要執行的異常中斷對應的SPSR中,以實現對處理器當前狀態、中斷屏蔽及各條件標志位的保存。各異常中斷模式都有自己相應的物理SPSR寄存器。

        ② 設置當前狀態寄存器CPSR中的相應位。

        設置CPSR模式控制位CPSR[4:0],,是處理器進入相應的執行模式;

        設置中斷標志位(CPSR[6]=1),禁止IRQ中斷;

        當進入Reset或FIQ模式時,還要設置中斷標志位(CPSR[7]=1),禁止FIQ中斷。

        ③ 將引起異常指令的下一條指令的地址保存到新的異常工作模式的R14即R14_mode中,使異常處理程序執行完后能正確返回原程序。

        ④ 給程序計數器強制賦值,是程序從ARM體系中的異常工作模式表中給出的相應的矢量地址開始執行中斷處理程序。一般來說,矢量地址處將包含一條指向相應程序的轉移指令,從而可跳轉到相應的異常中斷處理程序處執行異常中斷處理程序。

        ARM處理器對異常的響應過程可用偽代碼描述:

        R14_<exception_mode>=return link

        SPSR_<exception_mode>=CPSR

        CPSR[4:0]=exception mode number

        CPSR[5]=0

        CPSR[6]=1

        If<exception-mode>=Reset or FIQ then

        CPSR[7]=1

        PC=exception vector address

        上面每個異常模式對應有2個寄存器R13_<mode>、 R14_<mode>,分別保存相應模式下的堆棧指針、返回地址。堆棧指針可用來定義一個存儲區域保存其他用戶寄存器,這樣異常處理程序就可使用這些寄存器。

        FIQ模式還有額外的專用寄存器R8_fiq~R12_fiq,使用這些寄存器可加快快速中斷的處理速度。

        ARM嵌入式培訓機構哪個好?粵嵌嵌入式培訓開設了適合零基礎學員的階梯式課程安排,不僅有適合零基礎的學習的基礎班,更有適合有基礎的就業班,歡迎你來學習。


      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲无线观看国产超清 | 亚洲国产人成中文字幕 | 日本大道香蕉中文在线 | 热久久99精品综合久久 | 亚洲国产另类一区在线5 | 亚洲一品道在线观看 |