當cpu正在正常執行時,外部發生的某一隨機事件請求cpu去處理,於是cpu暫時中止現行程式的執行而處理所發生的事件,處理完畢後,再回到原來被中止的地方繼續執行,這種能力和行為稱為中斷。系統為實現中斷而採取的硬體和軟體措施稱為中斷系統。
• 乙個完整的中斷過程應該包括:中斷請求、中斷判優、
中斷響應、中斷處理和中斷返回。
首先中斷源提出中斷申請,在該中斷允許的情況下,cpu首先響應優先級別高的中斷源提出的中斷請求,等處理完高優先順序中斷源的中斷服務程式後再響應較
低優先順序別的中斷請求;cpu暫停現行程式,將pc中下一條指令的位址入棧保護起來,響應中斷請求,進入中斷服務程式;中斷服務程式首先保護現場,接著執行中斷源服務程式主體部分,然後恢復現場,最後返回主程式。
(一)、中斷源
引起中斷的事件,即發出中斷請求的**,稱為中斷源。在計算機系
統中,軟體和硬體均可以提出中斷請求。
一般的i/o 裝置,如鍵盤、印表機等。
實時時鐘。
軟、硬體故障。
為了除錯程式而設定的中斷。(例如設定斷點,單步執行等)
中斷源的設定—即使是最高端的計算機,也不能夠處理全部的異常情 況和特殊事件,它只能根據應用目的設計一些事先確定的中斷源。
(二)、中斷請求
用某種訊號通知cpu指明某個外設正在請求中斷,需要cpu中斷現行程式的執行。
•中斷請求的條件:
(1)外設具有提出中斷請求功能;
(2)cpu允許該外設發中斷請求。
•中斷遮蔽:是否允許cpu響應中斷請求。可通過設定狀態暫存器上的if標識位來控制。
(1)非遮蔽中斷(nmi)
出現在nmi線上的中斷請求為非遮蔽中斷,這種中斷不受中斷允許標誌if的影響,
它總是被cpu接受的。非遮蔽中斷的優先權高於可遮蔽中斷。
(2)可遮蔽中斷
出現在intr線上的中斷請求訊號。是否響應intr的請求,取決於中斷允許標誌
位if的狀態。只有當中斷允許標誌位if為1時,cpu才能響應intr的中斷請求。
• 如果if為0,即使intr端有中斷請求訊號cpu也不會響應。這種情況稱為中斷遮蔽。
• 通常cpu為每個中斷源設定乙個中斷請求觸發器,把該觸發器置「1」時,向cpu發
出中斷請求且一直保持這一狀態,直到cpu響應該中斷請求後才能而且必須清除這一請求訊號,以防止重複中斷。
1、中斷請求訊號的傳送
• 中斷請求訊號產生後,可以通過中斷請求線傳送給cpu。
• 按照中斷請求線的數目分為單線中斷 多線中斷 多線多級中斷
•1). 單線中斷
• 各中斷源的請求訊號通過三態門匯集到一根公共請求線上,如下圖。
• 當收到中斷請求後,cpu必須通過相應的軟體或硬體的方法來判斷是哪個裝置提出中斷請求。在微機中廣泛採用這種模式。
2). 多線中斷
• 在多線中斷技術中,各個中斷源單獨設定中斷請求線,將中斷請求直接送往
cpu。
當cpu收到中斷請求訊號後,就知道了請求源是誰,這有利於提高中斷響應的
速度,便於採用向量中斷技術,但其硬體代價較大。
• 缺點:中斷源的數目難以擴充。
3). 多線多級中斷
• 當中斷源的數目大於中斷輸入線的數目時,通常是將中斷請求線連線成二維結構
(多線多級技術),如下圖。
(三)、中斷響應
• 中斷響應 • 中斷響應是指主機發現外部中斷請求,中止現行程式的執行,
到調出中斷服務程式這一過程。
• 中斷響應的條件
① cpu處於開中斷狀態
② 在一條指令執行完
② 至少要有乙個未被遮蔽的中斷請求
• 中斷響應過程
① 關中斷0=>中斷允許觸發器cien
② 保護斷點和程式狀態pc=>堆疊(或特殊暫存器epc)psw=>堆疊
③ 識別中斷源,取得中斷服務程式首位址和初始程式狀態字分別送pc和pswr
(四)、中斷處理過程
中斷處理過程包括:
進入中斷服務程式,中斷服務程式首先保護現場,接著執行中斷源服務程式主
體部分,然後恢復現場,最後返回主程式。
中斷請求——中斷判優——中斷響應——中斷處理——中斷返回
進一步可細分為:
關中斷儲存斷點(入棧當前ip值)
識別中斷源(尋找相應的中斷服務程式入口位址)
保護現場(入棧各重要暫存器)
執行中斷服務程式
恢復現場(出棧各暫存器)
開中斷返回(出棧ip)。
嵌入式中斷
interrupt double compute area double radius 這個函式有太多的錯誤了,以至讓人不知從何說起了 1 isr 不能返回乙個值。如果你不懂這個,那麼你不會被雇用的。2 isr 不能傳遞引數。如果你沒有看到這一點,你被雇用的機會等同第一項。3 在許多的處理器 編譯器...
嵌入式linux中斷淺解
本文簡單理一下嵌入式linux對於arm系列soc的中斷管理。我將嵌入式linux的中斷分為了3個級別,分別是 1.cpu級 嵌入式linux只使用了arm的irq中斷,當發生乙個irq時,cpu會自動執行0x00000018 低端向量模式 或0xffff0018 高階向量模式 處的指令,此處一般放...
嵌入式學習過程
第一講 嵌入式基礎知識 1.嵌入式的定義 特點 應用 2.嵌入式硬體結構 3.嵌入式軟體結構 第二講如何學習嵌入式 1.嵌入式系統開發流程 2.3.學習嵌入式的方法 4.使用tx 2440a 開發專案 第二部分 開發板功能演示 第三講tx 2440a 開發板外圍硬體介紹 1.核心板資源介紹 2.底板...