None of the drivers in TinyOS are written to be able to sustain a task
taking long seconds or more to complete.  Blocking the task queue for
a long time is bad.  Read the discussion pointed to my Michael.  You
must split your long task into multiple tasks, each task incrementally
doing more processing.

For the MSP430 TimerC in particlar, every two seconds, for each
overflow of a 32khz 16-bit counter, a task is posted to process that
overflow.  The current overflow MUST be processed before the next
overflow occurs.

For a healthy, reactive system, I recommend no one task take longer
than, say, tens of milliseconds to complete.

Cory

On 2/5/06, Matt Thompson <[EMAIL PROTECTED]> wrote:
> Hi,
>
> It appears that TimerC is filling the task queue while a long task is
> running (ie Elliptic Curve DSA signature verification).  After the ECDSA
> task completes, the telosb is unable to process any more tasks.  Is
> there a way to stop the timer from posting tasks before a long operation
> is started?  It seems that even if I do not start the timer (and it is
> not wired to StdControl), the task queue still fills up.  I have to
> completely remove it from the configuration for this behaviour to disappear.
>
> Why does the mote not continue to process the task queue after the long
> task completes, and then allow me to post more tasks when some of them
> have completed?
>
> Has anyone else expereienced similar behaviour?
>
> Cheers,
> Matt
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>

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

Reply via email to