本篇來介紹中斷,這是計(jì)算機(jī)系統(tǒng)以及嵌入式系統(tǒng)的重要概念。
1 中斷基本概念
中斷是CPU對(duì)系統(tǒng)發(fā)生的某個(gè)事件作出的一種反應(yīng)。
中斷的一些基本概念:
中斷源:引起中斷的事件稱為中斷源
中斷請(qǐng)求:中斷源向CPU提出處理的請(qǐng)求稱為中斷請(qǐng)求
中斷向量:中斷源的識(shí)別標(biāo)志,中斷服務(wù)程序的入口地址
中斷向量表:按照中斷類型號(hào)從小到大的順序存儲(chǔ)對(duì)應(yīng)的中斷向量,總共存儲(chǔ)256個(gè)中斷向量
斷點(diǎn):發(fā)生中斷時(shí)被打斷程序的暫停點(diǎn)稱為斷點(diǎn)
中斷響應(yīng):CPU暫?,F(xiàn)行程序轉(zhuǎn)而為響應(yīng)中斷請(qǐng)求的過程稱為中斷響應(yīng)
關(guān)中斷:在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)過程中都要先關(guān)閉中斷,避免堆棧錯(cuò)誤
保存現(xiàn)場(chǎng):保存程序當(dāng)前斷點(diǎn)執(zhí)行所需的寄存器和相關(guān)數(shù)據(jù)
中斷服務(wù)程序:處理中斷源的程序稱為中斷處理程序
中斷處理:CPU執(zhí)行有關(guān)的中斷服務(wù)函數(shù)稱為中斷處理
中斷返回:返回?cái)帱c(diǎn)的過程稱為中斷返回
2 中斷的分類
2.1 硬/軟中斷
按中斷源的不同,可分為:
硬件中斷:由CPU外部的硬件,引入的中斷,是隨機(jī)的
軟件中斷:軟件中斷其實(shí)并不是真正的中斷,它們只是可被調(diào)用執(zhí)行的一般程序,是預(yù)先設(shè)計(jì)的
2.2 外/內(nèi)中斷
根據(jù)中斷源所在的位置,可以分:
外部中斷:一般指由計(jì)算機(jī)外設(shè)發(fā)出的中斷請(qǐng)求,如:鍵盤中斷、打印機(jī)中斷、定時(shí)器中斷等
內(nèi)部中斷:是指如運(yùn)算出錯(cuò)(除數(shù)為零、運(yùn)算溢出、單步中斷等)所引起的中斷
2.3 可/非屏蔽中斷
按是否可屏蔽,可分為:
可屏蔽中斷:通過INTR(Interrupt Require)線向CPU請(qǐng)求的中斷,此類中斷并不會(huì)影響系統(tǒng)運(yùn)行,可隨時(shí)處理,或不處理。此外,除受本身的屏蔽位控制外,還受一個(gè)總的中斷允許標(biāo)志位IF(Interrupt ?Flag)的控制
非屏蔽中斷(不可屏蔽中斷):非屏蔽中斷是出現(xiàn)在NMI(Non Maskable Interrupt)線上的請(qǐng)求 ,不受中斷標(biāo)志位IF的影響,內(nèi)部中斷是不可屏蔽的中斷
3 中斷處理具體細(xì)節(jié)
中斷的整個(gè)處理過程,由硬件和軟件共同完成,具體處理細(xì)節(jié)如下圖:
根據(jù)此圖,再來分析下各個(gè)過程:
關(guān)中斷:進(jìn)入不可響應(yīng)中斷請(qǐng)求的中斷,由硬件自動(dòng)完成
保存斷點(diǎn):把當(dāng)前的程序計(jì)數(shù)器PC中的內(nè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)生
開中斷:執(zhí)行中斷程序時(shí),打開中斷可實(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)
再次開中斷:中斷執(zhí)行完,現(xiàn)場(chǎng)恢復(fù)完后,可以打開中斷
中斷返回:返回原程序繼續(xù)執(zhí)行
處理過程,會(huì)經(jīng)歷兩次的開/關(guān)中斷,也可用下圖描述
4 總結(jié)
本編介紹了中斷基本概念,中斷的分類,以及 中斷處理的具體細(xì)節(jié)