[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