On Jul 5, 2006, at 2:24 AM, Frigging wrote:

Hi,

by the way I'm interesting about tinyos 2.x

you've had wrote:
"Interrupts, however, can preempt tasks. All code that an interrupt handler calls must be async. The hardware takes care of pushing some context on the stack, and the compiler takes care of spilling registers to memory. The question of when interrupts can be handled or not (interrupt preemption, etc.) depends on 2 things: the chip architecture and whether the code has
disabled interrupts or adjusted the interrupt priority level."

but this means that asyc function could preempt an other async function? However if an interrupt handler can call only async function, maybe it's possible (if the chip architecture and whether the code has not disabled interrupts or adjusted the interrupt priority level) preempt an other async function. I think so, because I read your paper "TinyOS Programming" at page 39, and I understand that since "In this example, c can (theoretically) preempt a ...", for me this means that async function can preempt task and async function. While sync function is running (no-blocking), are interrupts
disabled? or is there a interrupts queue?

In tinyos 2.x where is interrupt priority level handled ?

You're asking about hardware at this point, rather than TinyOS.

Some interrupt handlers have interrupts disabled during their execution (e.g., the I2C/two-wire interrupt on the atm128 basically requires they be disabled in order to work properly). Others keep interrupts enabled during their execution. IPLs are generally hardware, not software, mechanisms. In microcontrollers, priority levels generally indicate execution order, but the MCU does not support conditional disabling in the way that microprocessors do.

Phil
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to