在嵌入式開發(fā)的過程中是需要是使用到多種元素的,對于這些開發(fā)的元素也是必不可少的,如果說到嵌入式開發(fā)培訓(xùn)的話那么肯定就不能少的了中斷方式這個元素了。今天達(dá)內(nèi)科技就來和大家一起說說嵌入式開發(fā)培訓(xùn)的中斷方式是怎樣的?
嵌入式開發(fā)培訓(xùn)中斷的基本概念
中斷是一種硬件機(jī)制,在CPU在正常運行程序的過程中,中斷可以隨時發(fā)生。由預(yù)選安排或各種隨機(jī)的內(nèi)外部事件,一般稱為中斷源,發(fā)出中斷請求,使CPU中斷正在運行的程序,并通過將控制權(quán)傳遞給服務(wù)設(shè)備的中斷處理程序來響應(yīng),這個過程稱為程序中斷。
嵌入式開發(fā)培訓(xùn)中斷的本質(zhì)
一般認(rèn)為中斷是外部設(shè)備向處理器發(fā)起的請求事件,這還不夠徹底,中斷可以說是是處理器對外開放的實時受控接口。比如計算機(jī)系統(tǒng)中,如果沒有中斷,計算機(jī)所有的程序都是定論的,我們事先就可以知道其運行的全部過程,無法交互,相當(dāng)于一個加速器。
有中斷后,外部服務(wù)程序可能打斷當(dāng)前任務(wù)。CPU“正在執(zhí)行的程序”與“隨時可能發(fā)生的服務(wù)”,二者形成了異步關(guān)系,由人實時控制的中斷輸入,是無法預(yù)測的。中斷可以看作是一種“硬件輪詢”。即本質(zhì)上,CPU會通過讀取外部信號來判斷CPU的下一步狀態(tài)。
嵌入式開發(fā)培訓(xùn)中斷處理方式
設(shè)備管理中,高速的處理器和低速的輸入輸出設(shè)備相對來說,會降低整體效率,為了減少程序直接控制方式中CPU的等待時間,提高系統(tǒng)的并行工作程度,采用中斷處理方式是很有必要的。
在I/O設(shè)備中斷方式下,CPU與I/O設(shè)備之間數(shù)據(jù)的傳輸步驟如下:
在某個進(jìn)程需要數(shù)據(jù)時,發(fā)出指令啟動輸入輸出設(shè)備,準(zhǔn)備要處理的數(shù)據(jù);
在進(jìn)程發(fā)出指令啟動設(shè)備之后,該進(jìn)程放棄處理器,等待相關(guān)I/O操作完成。此時,進(jìn)程調(diào)度程序會調(diào)度其他就緒進(jìn)程使用處理器。
當(dāng)I/O操作完成時,輸入輸出設(shè)備控制器通過中斷請求線向處理器發(fā)出中斷信號,處理器收到中斷信號之后,轉(zhuǎn)向預(yù)先設(shè)計好的中斷處理程序,對數(shù)據(jù)傳送工作進(jìn)行相應(yīng)的處理。
得到了數(shù)據(jù)的進(jìn)程,轉(zhuǎn)入就緒狀態(tài)。在隨后的某個時刻,進(jìn)程調(diào)度程序會選中該進(jìn)程繼續(xù)工作。而這就是嵌入式開發(fā)培訓(xùn)的中斷方式。