嵌入式 中斷名詞詳解 分類與過程

2021-10-07 08:19:03 字數 2503 閱讀 9659

當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.底板...