Hello there,
from time to time i have a strange problems when initializing
class objects in file range by their respective constructors, i
noted that problem occurs only when that constructors takes
pointers to other global objects, tables or something else.
Whats the problem? in best scenario object pointer are wrongly
set and pointing to some random locations, at worst my program
does not start at all (event with my main() func empty) it just
hangs
here is link to my code
http://dl.dropbox.com/u/6883398/Lays.tar.bz2 its and eclipse
project, simple "make" in project directory should work too. Note
that archive contains already compiled program in "Release"
directory, this compilation does not work at all! (worst case
scenario described above).
As I wrote this program incrementaly it stopped working after i
added 2 objects inits in layouts.cpp
CLayPGMString
minTag(minTagData,strMin,true,CLayPGMString::XSMALL);
CLayPGMString
maxTag(maxTagData,strMax,true,CLayPGMString::XSMALL);
strMin and strMax params are pointers to strings in PROGMEM, if i
replace it with zeros like
CLayPGMString minTag(minTagData,0,true,CLayPGMString::XSMALL);
CLayPGMString maxTag(maxTagData,0,true,CLayPGMString::XSMALL);
program starts again.
Other important thing noted is, when I initialise those objects
in file range with their default, empty constructors and then set
needed pointers at run time (for example right after main()
function) everything works too. I ran out of ideas what could be
wrong, maybe wrong code, I'm open to any suggestions.
I'm using avr-gcc-4.5.2 on gentoo linux, also checked on stable
4.4 and it behaves exactly the same way.
Marcin