[Tinyos-devel] Nested interrupts

Michael Newman mnewman at dragonnorth.com
Tue Aug 14 11:34:39 PDT 2007


> The fastest queuing I can think of is to copy the timestamp and the  
> rest of
> the event information into a dedicated ring buffer, check for  
> overflow of
> the ring buffer and update the buffer pointers. Then unwind the  
> interrupt.
> Note that unwinding the interrupt is probably the big part of this!
> Difference in the minimum latency of this minimal queuing scheme is  
> roughly
> TWICE that of the reentrant interrupt.

Why is unwinding the principal part of the overhead? Generally  
postamble costs are merely the inverse of preamble operations:  
register->memory operations become memory->register, etc.

Phil


MJN: My view is that the preamble and postamble are large compared to the
cost of capturing the timestamp and queuing it to a dedicated ring buffer. I
may be wrong, but this has been my experience in several embedded systems. I
have not studied it in TinyOS, but there always seem to be a large number of
registers to push, stack frames to establish address registers to load etc.



More information about the Tinyos-devel mailing list