I believe the controllers supported under TOS have multiple interrupt levels that can preempt each other if interrupts are re-enabled in the routine.
The usual interrupt mechanism is to use the processor stack to store a return vector (usually automatically in the interrupt call) as well as cpu state. When an interrupt returns it pops the old stuff off the stack and goes back to where it was before, so it's a Last In First Out kind of deal. I think the controller manuals have some explanation of the specific behaviors if you really need to know. MS Zheng Manchun wrote: > Hi all, is it true that a current executing interrupt handler can be > preempted by a new interrupt handler? > If yes, > -- how does the old interrupt handler resume once the new interrupt > handler completes its execution? > -- does TinyOS maintain sth like the queue of the scheduler to store the > preempted interrupt handlers? > -- (assume that A, B, C are all some interrupt handlers) A is preempted > by B, and B is preempted by C, then after C completes its execution, is > the order of executing A , B restricted as B then followed by A? > > -- > Thanks & Best Regards, > Manchun > > > ------------------------------------------------------------------------ > > _______________________________________________ > Tinyos-help mailing list > [email protected] > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
