新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM7的異常處理

        ARM7的異常處理

        作者: 時間:2016-11-21 來源:網絡 收藏
        一直困惑,中斷向量表的運行機制,從軟件角度來說是說不通的,因為中斷向量表采用的不是分支選擇程序,而是順序執行的跳轉指令LDR或B,我想許多初學者一定有這樣的困惑;

        我們必須仔細?理解ARM的中斷運行是什么樣一個情況:

        本文引用地址:http://www.104case.com/article/201611/319415.htm

        1進入異常:1)將原來執行的程序的下一條指令保存到LR中;這個好理解;2)復制CPSR到響應的SPSR中進行保存,這是為了保存異常前的狀態;3)根據發生的異常類型改變CPSR模式的值;4)令程序計數器PC的值指向異常處理向量所指的下一條指令。這句話很關鍵,ARM內核響應異常后使PC值強制指向??異常處理向量所指的下一條指令,而不是軟件實現的,否則腦袋想破都沒有用。

        PC值改變也就改變了程序的執行,跳轉到具體的中斷程序,而中斷向量表是?預先設定好的放置中斷跳轉指令的“表”;??跳轉到向量表則是由ARM內核完成。

        這是糾結了幾晚的事情,應該是正確的理解了,發出來供商榷???



        關鍵詞: ARM7異常處

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 崇仁县| 禹城市| 汶上县| 页游| 丰镇市| 锦屏县| 枣庄市| 澄城县| 唐海县| 太仓市| 贡觉县| 繁昌县| 石河子市| 苗栗县| 桃园县| 南华县| 黄大仙区| 岚皋县| 中西区| 康定县| 江安县| 嘉祥县| 河曲县| 德江县| 常州市| 腾冲县| 奎屯市| 微山县| 子长县| 塔河县| 新疆| 云安县| 乌兰察布市| 定襄县| 固镇县| 城口县| 白朗县| 潞西市| 城市| 巴楚县| 科尔|