新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Cortex―M3的異常處理機制研究

        Cortex―M3的異常處理機制研究

        作者: 時間:2009-02-26 來源:網絡 收藏

        2.2 的返回
        -返回的操作如圖3所示。當從中返回時,器可能會處于以下情況之一:
        ◆尾鏈到一個已掛起的異常,該異常比棧中所有異常的優先級都高;
        ◆如果沒有掛起的異常,或是棧中最高優先級的異常比掛起的最高優先級異常具有更高的優先級,則返回到最近一個已壓棧的ISR;
        ◆如果沒有異常已經掛起或位于棧中,則返回到Tread模式。
        為了應對異常返回階段可能遇到的新的更高優先級異常,支持完全基于硬件的尾鏈,簡化了激活的和未決的異常之問的移動,能夠在兩個異常之間沒有多余的狀態保存和恢復指令的情況下實現back―to―back。尾鏈發生的2個條件:異常返回時產生了新的異常;掛起的異常的優先級比所有被壓棧的異常的優先級都高。
        尾鏈發生后,過程如圖3中尾鏈分支所示。這時,Cortex―M3處理器終止正在進行的出棧操作并跳過新異常進入時的壓棧操作,同時通過Ibus立即取出掛起異常的向量。在退出前一個ISR返回操作6個周期后,開始執行尾鏈的ISR。


        3 Cortex―M3和ARM7中斷控制器比較
        在過去的十年中,基于ARMv4的ARM7系列廣泛應用在各個領域。在ARM7系列中,并沒有對中斷進行獨立的服務,而是通過犧牲處理器一定的性能來換取有效的中斷響應和中斷處理。Cortex―M3高度耦合的NVIC可以實現硬件中斷處理,同時支持遲到和尾鏈,加快了異常響應的速度,充分發揮了處理器的性能。圖4為Corex―M3和ARM7在中斷控制器結構方面的差異。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛浦县| 凤翔县| 隆林| 中宁县| 漠河县| 常熟市| 巩留县| 永昌县| 固安县| 墨江| 全椒县| 鄂伦春自治旗| 永靖县| 济阳县| 涟水县| 佛冈县| 黄梅县| 浠水县| 金坛市| 丰台区| 罗定市| 双城市| 宁都县| 尖扎县| 修武县| 木里| 余庆县| 依安县| 南部县| 乐东| 玉山县| 中西区| 沛县| 泗水县| 灌南县| 莱西市| 万年县| 远安县| 江北区| 富民县| 阿瓦提县|