中斷處理
當CPU(中央處理器)執行完一條現行指令時,如果外設向CPU發出中斷請求,那么CPU在滿足回響的情況下,將發出中斷回響信號,與此同時關閉中斷,表示CPU不在受理另外一個設備的中斷。這時,CPU將尋找中斷請求源是哪一個設備,並保存CPU自己的程式計數器(PC)的內容。然後,他將轉移到處理該中斷源的中斷服務程式。CPU在保存現場信息,設備服務(如交換數據)以後,將恢復現場信息。在這些動作完成以後,開放中斷,並返回到原來被中斷的主程式的下一條指令。arm啟動過程中的中斷向量?
詳細內容?
?最近在研究arm 對其啟動一直有一點不太明白。在上電啟動後,系統應該從跳入0地址異常中斷處執行,然而我們一般將代碼燒寫到SDRAM中0xc000000的地址。這裡的0xc000000並非0x00000000上電復位地址,為什麼卻可以啟動,跳到復位程式處執行?AREA Boot ,CODE, READONLYENTRYB ResetHandlerB UndefHandlerB SWIHandlerB PreAbortHandlerB DataAbortHandlerBB IRQHandlerB FIQHandler0004,但實際卻不是這樣
同時 arm是32位處理器,PC指針是32位,按理說中斷向量地址應該也是32位,也就是4個byte,加上B這條指令,應該也是一個32bit的指令,總共就應該是8個byte,那么一個中斷向量,如B ResetHandler,就應該是占0x00000000~0x00000008,而不是0x00000000~0x000
0?