[Tinyos-help] TOSH_SIGNAL and TOSH_INTERRUPT

Michael Schippling schip at santafe.edu
Mon Oct 1 11:32:09 PDT 2007


I believe you have it right. Except I'd have to go analyze the controller's
manuals to see if there is a notion of interrupt priority -- more likely
any enabled int can preempt a TOSH_INTERRUPT(). I think the A,B_EVENTS() 
will execute in the interrupt context from whence they were called. So
in this case SIGNAL(Y) will not fire and preempt SIGNAL(X) or A_EVENT().

But in _most_ cases pending interrupts will fire as soon as a TOSH_SIGNAL()
returns. So you are not likely to miss them unless you overrun by getting
more than one of the same type before you can service it.

MS

Man-Ki Yoon wrote:
> Hi all.
> 
> I want to know the difference between TOSH_SIGNAL and TOSH_INTERRUPT.
> 
> AFAIK, TOSH_SIGNAL can’t be preempted by any other external interrupts!
> 
> On the other hand, TOSH_INTERRUPT can be preempted by other external 
> interrupts which have higher priority!
> 
> Is it right?
> 
> If so, the execution thread starting from TOSH_SIGNAL can’t be preempted 
> by any other external interrupts? Or only TOSH_SIGNAL portion?
> 
> In other words,
> 
> TOSH_SIGNAL(X) {
> 
>     signal A_MODULE.A_EVENT();
> 
> }
> 
> TOSH_SIGNAL(Y) {
> 
>     signal B_MODULE.B_EVENT();
> 
> }
> 
> Assume that A_MODULE.A_EVENT() is called by TOSH_SIGNAL and is 
> executing, and at that time, TOSH_SIGNAL(Y) is fired.
> 
> 1)      TOSH_SIGNAL(Y) can’t be fired.
> 
> 2)      TOSH_SIGNAL(Y) can be fired. And it preempts A_MODULE.A_EVENT().
> 
> Which is correct?
> 
> Best regards,
> 
> Man-Ki Yoon
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Tinyos-help mailing list
> Tinyos-help at Millennium.Berkeley.EDU
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


More information about the Tinyos-help mailing list