ARM體系的異常中斷
1:在正常執行過(guò)程中,每執行一條ARM指令,程序計數器寄存器PC的值加四個(gè)字節,在每執行一條Thumb指令,程序計數器寄存器PC的值加兩個(gè)字節,整個(gè)過(guò)程是按照順序執行的
本文引用地址:http://dyxdggzs.com/article/201611/317945.htm2:通過(guò)跳轉指令,程序可以跳轉到指定的地址標號進(jìn)行執行,或者跳轉到特定的子程序進(jìn)行執行,其中B指令用于執行跳轉操作,BL指令用于執行跳轉操作的同時(shí),保存子程序相應的返回地址,BX在執行跳轉操作的同時(shí),分居目標地址的最低位,可以將程序切換到THumb狀態(tài),BLX執行上述三個(gè)操作
3:當異常中斷發(fā)生時(shí),系統執行當前指令后,將跳轉到相應的異常中斷處理程序進(jìn)行執行,當異常處理中斷執行完成之后,程序返回到發(fā)生中斷的下一條指令出繼續執行,在進(jìn)入異常中斷處理程序的時(shí)候,要保存被中斷程序的執行現場(chǎng),在從異常中斷程序退出時(shí),要恢復被中斷的程序的執行現場(chǎng)
ARM處理器對異常中斷的響應
1保存處理器當前的狀態(tài),中斷屏蔽位,以及各條件標志位,這是通過(guò)當前程序狀態(tài)寄存器CPSR的內容保存到要自信的異常中斷對應的SPSR寄存器中實(shí)現的
2設置當前程序狀態(tài)寄存器的相應的位,包括CPSR中的位,是處理器進(jìn)入相應的執行模式,設置CPSR中的位,進(jìn)制IRQ中斷,但進(jìn)入FIQ是,進(jìn)制FIQ中斷
3將寄存器設置成返回地址
4將程序計數器PC,設置長(cháng)異常中斷的中斷向量地址,從而跳轉到相應的異常中斷進(jìn)行處理
從異常中斷處理中返回
1恢復被中斷的程序的處理器后狀態(tài),講SPSR_mode寄存器內容到CPSR
2返回到發(fā)生異常中斷的指令的下一條指令執行,講IR_MODE中的內容到PC
3復位和異常中斷不需要返回,程序計數器PC所指向的不同的異常中斷是不同的
評論