Hi,  
  
I'm currently using TinyOS 0.6.1 (1.0 RF not working on Rene) and have  
a few questions on how the OS handles message buffering. From what  
I've read, when a message is received, an event is triggered which has  
a pointer to the received message. I'm assuming the memory for the  
incoming message is allocated dynamically, and when the event  
finishes, it returns the pointer to the message so that the memory can  
be freed.  
  
Now assume the mote is in a busy network and receiving many messages.  
Events cannot be preempted, so messages start building up in memory.  
1) Is there a limit to how many messages can be held by a mote? Is it  
just a function of the memory size, in which case can incoming  
messages render a mote unable to allocate variables?  
  
When an event returns, the memory used by the message is no longer  
accessible, so if the message contents are to be stored across  
different events, the message must be stored elsewhere.  
2) Is it possible to somehow keep the same memory for a message across  
multiple events, say keeping an array of TOS_MsgPtrs in a frame? What  
would the event return if this were the case?  
  
If it is not possible to keep the same memory, and messages have to be  
copied into frames, it would mean that enough buffer space would have  
to be statically allocated in anticipation of however many messages  
can be received in a short time period. With 1KB of memory on Rene  
motes, dedicating this much memory and not being able to use it when  
the network isn't busy seems like a significant waste of resources.  
  
  
Finally, two question about reliability.  
3) The networking stack has the ability to compute CRCs. Are any  
actions taken by the OS if the CRC fails? Are messages with bad CRCs  
automatically dropped, or can different actions be defined, e.g.  
NACKs?  
4) Is there an acknowledgement based means of communication  
implemented in TinyOS to allow two nodes to communicate reliably, or  
does this have to be built from the ground up?  
  
Thanks for your time. I realize that some of these issues are  
addressed in the 1.0 tutorial, and vaguely addressed in the 0.6.1  
tutorial, but it would help to have answers directed specifically to  
these questions.  
  
Thanks again, Emerson Farrugia  
  
 

_______________________________________________
Tinyos-users mailing list
[EMAIL PROTECTED]
http://mail.Millennium.Berkeley.EDU/mailman/listinfo/tinyos-users

Reply via email to