中斷意味著在處理器執(zhí)行程序時會出現(xiàn)突發(fā)情況, 此時,處理器應停止當前任務并處理意外事件。 治療完成后會復發(fā)。 返回被中斷程序的開始位置以繼續(xù)執(zhí)行。 我們知道微控制器有自己的中斷系統(tǒng)。 Linux系統(tǒng)如何實現(xiàn)中斷?
根據中斷的來源,可以分為內部中斷和外部中斷;中斷的屏蔽性可分為可屏蔽中斷和不可屏蔽中斷;中斷的入口地址可分為向量中斷和非向量中斷等。對于Linux的中斷處理程序架構來講,與單片機不同的它采用頂半部和底半部實現(xiàn)的,頂半部是處理緊急的硬件操作,底半部是延緩的耗時操作。也就是說頂半部主要是對中斷的前期處理,比如記錄中斷號,處理中斷信息等。底半部則是處理程序所有的事情。Linux中斷函數的主要包括,申請中斷→釋放中斷→使能中斷→屏蔽中斷→中斷隊列函數等。
對于中斷來講可謂是所有嵌入式系統(tǒng)的必須具備的,因為目前市面的操作系統(tǒng)的對實時性要求很高,如果采用流水式或者時間片輪轉的方法很難達到理想的效果。所以任何一個嵌入式工程師都應該對中斷系統(tǒng)了如指掌。