前两天一个朋友问如何纯软件仿真中断.以前我也遇到过这样的问题,不过都没有解决,只是绕过去了.于是写了一个模似硬件中断的函数来试试, 测试证明是可行的.在此跟大家分享,并期望得到大家更好的方法. EXPORT CALL_IRQ CALL_IRQ proc STMFD sp!,{r0,r1,lr} MRS r0, cpsr LDR r1, =call_irq_ret ADD r1, r1, #0x04 MSR cpsr_c, #0x12 MSR spsr_cxsf, r0 MOV lr, r1 MOV r0, #0x18 BX r0 call_irq_ret LDMFD sp!,{r0,r1,lr} BX lr ENDP 在程序中,先置位某个中断,再显式调用CALL_IRQ()即可.
|