嵌入式中斷處理的簡單描述
## 通用的中斷處理過程:
中斷源---》中斷路徑---》中斷響應
中斷由中斷源發出,進過中斷路徑上報,最終由CPU響應中斷處理。這是一般CPU對中斷處理的流程mips也不例外。以V3R8單板的按鍵中斷處理流程為例:
按鍵產生中斷--》通過cpld匯聚上報--》通過gpio送達cpu--》送達pic響應--》由cpu核心響應運行中斷處理函數代碼
## 各部分的工作為:
中斷源這里為按鍵的物理硬件,在很多情況下將中斷和異常區分為一個為異步發生的一個為同步發生的,這里的異步就是由于很多中斷由cpu外設器件產生于cpu自身時鐘沒有關系,所以可以在任何時候發出信號而不受cpu時鐘周期的影響,在按鍵中斷的情況中斷信號隨按鍵的發生而產生。
中斷通路的作用可以認為是將中斷多級匯聚的過程,類似于一個樹狀的結構,其作用主要是在cpu響應中斷之后中斷處理程序根據中斷路徑逐級查找中斷來源,其查找過程類似于cpu中cause寄存器中的標識,每一級中斷路徑的分支都會講下一級中斷進行標識,由于這個標識是被軟件讀取并識別的所以可以定義的比較靈活,并不需要像cause寄存器一樣嚴格的進行位位對應。在單板的外部中斷路徑上主要包括的器件為:
cpld:進行外部二級中斷匯聚,將類似于按鍵、溫感等中斷匯聚為cpld中斷進行同意上報.
gpio:gpio管腳可以理解為soc片上對外開放的可編程管教,由于soc片上有眾多的器件不可能將每一個器件的輸入輸出都對片外開放,這里就通過gpio將需要對外開放的io管腳對應到片外物理管腳上,在v3r8單板中斷處理不分gpio的作用是將cpld中斷引導至片內pic器件。
pic:為soc片上的中斷控制芯片,可以將其理解為集成度最深的一層中斷匯聚,由于片上器件也可以產生中斷所以在pic芯片上對片上器件中斷進行了預先的定義,同時外部中斷被引導至pic之后也會得到統一的處理。
中斷最終上報給cpu之后,將按照mips體系定義的一般中斷處理流程進行處理。