更多課程 選擇中心

嵌入式培訓
達內IT學院

400-111-8989

嵌入式開發中什么是中斷方式?

  • 發布:嵌入式培訓
  • 來源:嵌入式資訊
  • 時間:2020-11-25 16:10

在嵌入式開發過程中,使用到處理器的時候,中斷是我們必不可少的元素。接下來跟大家說一說中斷的概念以及他的方式是什么。

中斷的基本概念

中斷是一種硬件機制,在CPU在正常運行程序的過程中,中斷可以隨時發生。由預選安排或各種隨機的內外部事件,一般稱為中斷源,發出中斷請求,使CPU中斷正在運行的程序,并通過將控制權傳遞給服務設備的中斷處理程序來響應,這個過程稱為程序中斷。

中斷的本質

一般認為中斷是外部設備向處理器發起的請求事件,這還不夠徹底,中斷可以說是是處理器對外開放的實時受控接口。比如計算機系統中,如果沒有中斷,計算機所有的程序都是定論的,我們事先就可以知道其運行的全部過程,無法交互,相當于一個加速器。

有中斷后,外部服務程序可能打斷當前任務。CPU“正在執行的程序”與“隨時可能發生的服務”,二者形成了異步關系,由人實時控制的中斷輸入,是無法預測的。中斷可以看作是一種“硬件輪詢”。即本質上,CPU會通過讀取外部信號來判斷CPU的下一步狀態。

中斷處理方式

設備管理中,高速的處理器和低速的輸入輸出設備相對來說,會降低整體效率,為了減少程序直接控制方式中CPU的等待時間,提高系統的并行工作程度,采用中斷處理方式是很有必要的。

在I/O設備中斷方式下,CPU與I/O設備之間數據的傳輸步驟如下:

在某個進程需要數據時,發出指令啟動輸入輸出設備,準備要處理的數據;

在進程發出指令啟動設備之后,該進程放棄處理器,等待相關I/O操作完成。此時,進程調度程序會調度其他就緒進程使用處理器。

當I/O操作完成時,輸入輸出設備控制器通過中斷請求線向處理器發出中斷信號,處理器收到中斷信號之后,轉向預先設計好的中斷處理程序,對數據傳送工作進行相應的處理。

得到了數據的進程,轉入就緒狀態。在隨后的某個時刻,進程調度程序會選中該進程繼續工作。

CPU是怎么知道中斷發生的?

舉個例子,比如說鍵盤,按下鍵盤Enter鍵時,cpu是怎么樣知道我按下了Enter鍵而不是Shift鍵呢?

首先說明cpu不會知道你按下的哪個鍵,cpu只會按著機器指令的執行順序,一條一條的執行機器指令。cpu只知道按設計好的邏輯執行指令,不管這個指令是干嘛的。

知道你按下哪個鍵的是操作系統,操作系統是根據中斷控制器以及相應的寄存器的狀態判斷是不是中斷。所以當你按下一個鍵,這個鍵的地址馬上被寫入RAM中,同時發出中斷信號,CPU獲取中斷信號,就會去執行中斷程序。

發生中斷時CPU怎么知道程序的地址?

中斷產生時,程序需要跳轉到某個地址去運行該段的程序,那么CPU是不是要讀整個內存然后去找中斷向量表呢?

不是的,不需要去讀取整個內存,而是通過映射的關系。例如在x86架構中,中斷向量表的位置保存在IDTR寄存器里,CPU通過這個寄存器就能找到中斷向量表,然后根據中斷號就可以找到具體的中斷入口了。

CPU檢測到中斷信號時,怎么知道是發給哪個進程的?

首先我們需要知道:中斷并不直接把數據送給用戶進程的,中斷通知的是驅動程序,而不關心當前正在執行的是哪個進程。而進程操作都是一樣的:保存現場,進入內核,執行需要的操作,返回中斷前的現場,繼續進程執行。

一個系統的的中斷系統通常是類似這樣的組成,包括設備的中斷、中斷控制器、CPU的中斷

設備的中斷

指設備要產生一個事件來通知CPU,事件的產生的方法有很多。對設備“關中斷”,指的是讓這個設備停止發出中斷信號,如果中斷控制器已經獲得這個中斷信號,那么這個中斷信號還是會報到CPU上的。

中斷控制器

指對多個設備的中斷進行采樣,排隊,分發的機制。對中斷控制器說:關中斷,是讓中斷控制器不要給CPU(或者上級)發送中斷信號了,設備報不報信號上來,這些信號是否被排隊,那是另一個問題。

CPU的中斷

指CPU核上有一條中斷線,當這條線加上合適的電平或者信號,CPU核就會從當前的執行上下文中,直接跳轉到中斷處理程序中執行。在CPU的角度上關中斷,就是不要執行“跳轉到中斷處理程序”這個動作。

中斷方式的優缺點

優點

I/O設備中斷方式使處理器的利用率顯著提高;

支持多道程序和I/O設備的并行操作,提高了效率。

缺點

各種各樣的輸入輸出設備通過中斷處理方式進行并行操作,使中斷次數增加,會造成CPU無法響應中斷;

如果在緩沖區裝滿數據之后發生中斷。那么在數據傳送過程中,發生中斷的機會較多,將耗去大量的CPU處理時間。

最后,達內嵌入式培訓機構提醒每一個it愛好者:如果你想要在短時間內快速入門,順利掌握一門技術,建議還是認真學習視頻。多練習,多動手。

版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。

預約申請免費試聽課

填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

上一篇:嵌入式中什么是實時系統?
下一篇:嵌入式開發中輪詢與中斷方式怎么選?

單片機:寫1清零,寫0清零,有什么區別?

嵌入式工程師一定不要亂用全局變量

嵌入式培訓靠譜嗎?就業怎么樣?

新手如何學習單片機?

  • 關注微信公眾號

    回復關鍵字:視頻資料

    免費領取 達內課程視頻學習資料

  • 視頻學習QQ群

    添加QQ群:1143617948

    免費領取達內課程視頻學習資料

Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

選擇城市和中心
黑龍江省

吉林省

河北省

湖南省

貴州省

云南省

廣西省

海南省

一级a爰片免费观看,色欲天香天天影视综合,精品在线线观看,色拍拍拍免费视频在线 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>