参考《ARM嵌入式系统基础教程》(第一版) P48 页“表3.5异常入口/出口”对于“BL,SWL,未定义的指令”看的很明白,但是对于“预取中止,快中断,中断,数据中止”就不是很明白了:
1、为什么无论在ARM状态还是THUMB状态下“之前的状态”都是“PC+4”而不用区分PC+4(在ARM状态下)PC+2(在THUMB状态下)? 2、在P50页“不管异常入口来自ARM状态还是THUMB状态,FIQ处理程序都会通过执行下面的指令从中断返回: SUBS PC,R14_fiq,#4;( FIQ 中断) SUBS PC,R14_irq,#4;( IRQ 中断) 为什么“FIQ,IRQ”中断的时候不用区分在ARM状态下或是在THUMB状态下呢?
请各位指教一二,谢谢!!
|