中斷處理

CPU執行有關的中斷處理程式稱為中斷處理。

中斷處理

當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?

操作回答?

這要看你把那個存儲器映射到0地址了。如果你把SDRAM映射到0地址,那么SDRAM的0地址就是0x0的起始地址。另外,跳轉指令是32bit沒錯,而且跳轉到哪裡是直接在指令中以偏移地址給出的,而不是先給指令再給地址。也就是說地址和指令在一起,總共32bit。否則的話就不用限制跳轉指令的跳轉範圍了。

相關搜尋

熱門詞條

聯絡我們