$HandlerLabel<br /> sub sp,sp,#4 ;decrement sp(to store jump address)<br /> stmfd sp!,{r0} ;PUSH the work register to stack(lr does't push because it return to original <br />address)<br /> ldr r0,=$HandleLabel;load the address of HandleXXX to r0<br /> ldr r0,[r0] ;load the contents(service routine start address) of HandleXXX<br /> str r0,[sp,#4] ;store the contents(ISR) of HandleXXX to stack<br /> ldmfd sp!,{r0,pc} ;POP the work register and pc(jump to ISR)<br /> MEND<br />;将$HandleLabel地址空间中的数据给PC,中断服务程序的入口<br /><br /> |
|