[Tinyos-help] AVR GCC compiler problems

John Regehr regehr at cs.utah.edu
Wed Feb 27 20:14:18 PST 2008


Just to amplify on Janos and Kevin's messages a bit.... when RAM is 
corrupted or changing optimization level changes the behavior of a program 
the culprit is always one of the following:
   - program depends on unspecified behavior e.g.
     - order of application of side effects between sequence points
     - order of evaluation of function arguments
   - program executes an operation with undefined behavior, most often
     but not limited to use of uninitialized data or pointer/array
     problems
   - something platform dependent e.g.
     - inline asm error
     - stack overflow
     - flaky node
     - memory mapping problem
     - peripheral doing something funny
   - compiler bug

In most cases a compiler bug is not the problem, but of course that does 
happen too.  If you do end up with a demonstrable compiler bug, please 
post a concise failure-inducing program to the avr-gcc mailing list, they 
take that kind of thing seriously over there.

When writing embedded C it's never a bad idea to have a copy of this 
document sitting around:

   http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

More readable documents exist but this one contains the real answers.

John


More information about the Tinyos-help mailing list