Dear all:<br>I have some question about what arm will do while exceptions happen.<br>In the document, ARM Architecture Reference Manual located at <a href="http://www.arm.com/miscPDFs/14128.pdf">http://www.arm.com/miscPDFs/14128.pdf</a>, there are some actions will be done when IRQ interrupt happened, A2.6.8.<br>
<br>Below is excerpted from it:<br><br>R14_irq = address of next instruction to be executed + 4<br>SPSR_irq = CPSR<br>CPSR[4:0] = 0b10010 /* Enter IRQ mode */<br>CPSR[5] = 0 /* Execute in ARM state */<br>/* CPSR[6] is unchanged */<br>
CPSR[7] = 1 /* Disable normal interrupts */<br>CPSR[8] = 1 /* Disable Imprecise Data Aborts (v6 only) */<br>CPSR[9] = CP15_reg1_EEbit /* Endianness on exception entry */<br>if VE==0 then<br>if high vectors configured then<br>
PC = 0xFFFF0018<br>else<br>PC = 0x00000018<br>else<br>PC = IMPLEMENTATION DEFINED /* see page A2-26 */<br><br>To return after servicing the interrupt, use:<br>SUBS PC,R14,#4<br><br>Do these actions have to be done by software or cpu will automatically finish them?<br>
Appreciate your help,<br>miloody<br>