中斷是什么?
中斷是指計(jì)算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序(Interrupt Service Routine,ISR)。這個(gè)事件可以是由硬件設(shè)備觸發(fā)(如硬盤讀寫錯(cuò)誤、打印機(jī)沒(méi)有紙等),也可以是由軟件觸發(fā)(如用戶按下Ctrl+C)。
當(dāng)發(fā)生中斷時(shí),CPU會(huì)暫停當(dāng)前正在執(zhí)行的程序,并跳轉(zhuǎn)到相應(yīng)的中斷處理程序(Interrupt Service Routine,ISR)去處理這個(gè)事件。中斷處理程序通常會(huì)保存當(dāng)前任務(wù)的上下文信息(如CPU寄存器的狀態(tài)、內(nèi)存中的數(shù)據(jù)等),然后執(zhí)行相應(yīng)的中斷處理操作(如讀取數(shù)據(jù)、發(fā)送響應(yīng)等)。在中斷處理完畢后,CPU會(huì)恢復(fù)之前保存的上下文信息,并回到被中斷的任務(wù)繼續(xù)執(zhí)行。
中斷是一種異步的事件處理機(jī)制,可以提高系統(tǒng)的并發(fā)處理能力。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,中斷被廣泛應(yīng)用于處理各種硬件設(shè)備事件和軟件異常情況。
我們知道中斷的發(fā)生與處理是一個(gè)需要軟硬件交互的操作。
?關(guān)中斷:進(jìn)入不可響應(yīng)中斷請(qǐng)求的中斷,由硬件自動(dòng)完成
?保存斷點(diǎn):把當(dāng)前的程序計(jì)數(shù)器PC中的內(nèi)容保存起來(lái),用于中斷處理結(jié)束后能繼續(xù)執(zhí)行主程序
?識(shí)別中斷源:有多個(gè)中斷源同時(shí)請(qǐng)求時(shí),只能響應(yīng)最高優(yōu)先級(jí)的,因此需進(jìn)一步判斷中斷源
?保存現(xiàn)場(chǎng)和屏蔽字:進(jìn)入中斷服務(wù)程序后,要先保存現(xiàn)場(chǎng)
?設(shè)置新的屏蔽字:用于改變中斷優(yōu)先級(jí)和控制中斷的產(chǎn)生
?開(kāi)中斷:執(zhí)行中斷程序時(shí),打開(kāi)中斷可實(shí)現(xiàn)更高優(yōu)先級(jí)的中斷響應(yīng),實(shí)現(xiàn)中斷嵌套
?執(zhí)行中斷服務(wù)程序:執(zhí)行中斷服務(wù)程序中的內(nèi)容
?再次關(guān)中斷:使得恢復(fù)現(xiàn)場(chǎng)和屏蔽字時(shí)不會(huì)被中斷打斷
?恢復(fù)現(xiàn)場(chǎng)和屏蔽字:使現(xiàn)場(chǎng)和屏蔽字恢復(fù)到中斷之前的狀態(tài)
?再次開(kāi)中斷:中斷執(zhí)行完,現(xiàn)場(chǎng)恢復(fù)完后,可以打開(kāi)中斷
?中斷返回:返回原程序繼續(xù)執(zhí)行
處理過(guò)程,會(huì)經(jīng)歷兩次的開(kāi)/關(guān)中斷,也可用下圖描述
在之前我們?cè)谧?a target="_blank">嵌入式的時(shí)候,大多是關(guān)注了軟件層面,如何注冊(cè)中斷,如何設(shè)計(jì)中斷的參數(shù),如何編寫中斷服務(wù)函數(shù),如何將中斷服務(wù)綁定到中斷號(hào)。做linux中斷的話,這些都是定義好的,你可以去調(diào)用接口,當(dāng)然也支持自定義添加新的中斷。
-
cpu
+關(guān)注
關(guān)注
68文章
11074瀏覽量
216928 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7657瀏覽量
90724 -
中斷
+關(guān)注
關(guān)注
5文章
905瀏覽量
42758
發(fā)布評(píng)論請(qǐng)先 登錄
ARM中斷體系和ZYNQ中斷體系詳解

什么是中斷源?中斷源的分類介紹

中斷系統(tǒng)詳解、外部中斷

STM32 中斷原理及外部中斷的實(shí)現(xiàn)

微機(jī)原理——8086中斷類型以及中斷向量表、中斷響應(yīng)、中斷返回

STM32公用中斷源時(shí)的中斷分配

中斷

STM32(六)-------中斷(外部中斷)

STM32——中斷、EXTI、按鍵中斷實(shí)驗(yàn)

中斷是什么?PLC的三大類中斷事件

中斷是什么,PLC中斷,單片機(jī)中斷,那中斷能干什么?

單重中斷與多重中斷介紹

軟中斷與硬中斷介紹
中斷的基礎(chǔ)概念

CPU中斷程序:從硬件看什么是中斷?

評(píng)論