[ECOS] nested interrupt

张 亮 johnsonest@hotmail.com
Mon Jul 29 18:05:00 GMT 2002


Hi,all!
  following question  is based on ARM arch.

In ecos, when a lower level interrupt occur it will execute

IRQ:
 // Note: I use this exception stack while saving the context because
 // the current SP does not seem to be always valid in this CPU mode.
 ldr sp,.__exception_stack // get good stack
 sub lr,lr,#4  // PC at time of interrupt
 stmfd sp!,{r0,fp,ip,lr}  
 mrs r0,spsr
 stmfd sp!,{r0}

handle_IRQ_or_FIQ:              
 mov ip,sp   // save SP which will vanish with
........
........

 mov sp,ip
 ldr lr,[sp,#armreg_pc]
 ldr r0,[sp,#armreg_cpsr]
 ldr ip,[sp,#armreg_ip]
 msr spsr,r0
 ldmfd sp,{r0-r10,fp}
 movs pc,lr   // restore PC from LR, CPSR from SPSR

    And this time, 

a high level interrupt occurs

    it will execute the above code again. 
and the previous stack area will be destroy, the system 
will be down, Is it right???



Best Regards
By david,




_________________________________________________________________
ÓëÁª»úµÄÅóÓѽøÐн»Á÷£¬ÇëʹÓà MSN Messenger: 
http://messenger.microsoft.com/cn


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list