On Mar 18, 2011, at 10:08 AM, Joe Dvorak wrote:

> Hello,
> 
>  
> I ran into a problem where the timer fails to fire based on the size of 
> variables defined in my program. The program has several timers and data 
> arrays to store the results before transmitting. My program runs great with 
> data arrays of a certain size, but an increase of just a few extra bytes 
> causes the timers to stop working. There is no error while compiling. I have 
> to download to the mote to test this behavior. With data arrays of 688 
> samples, the program runs normally. With data arrays of 692 samples, the 
> program downloads, starts, and StdControl.init() and StdControl.start() both 
> run. However, the timer that is started in these functions never fires and 
> the mote does nothing further. To cause this behavior, I only change the 
> length of the data arrays.
> 
>  
> I am using a micaz mote with an MDA300 sensorboard from Crossbow/Memsic for 
> sampling. The program is based on the XSensorMDA300 program that is in the 
> …/contrib/xbow/apps/XSensorMDA300 directory of Tinyos 1.1. The program is 
> compiled for Tinyos 1.1.
> 
>  
> Size results for a working program:
> 
> ROM:  19378
> 
> RAM:   4053
> 
>  
> Size results for a non-working program:
> 
> ROM:  19378
> 
> RAM:   4069
> 
>  
> Any help or insight into the problem would be greatly appreciated. I would 
> like to understand the issue better so I can determine the best way to work 
> around the issue.

The device has 4092 bytes of RAM. With the larger variables your programs 
writes to them is corrupting the stack, which shares that 4092 bytes with your 
data.

Phil
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to