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