Cory Cross schrieb: > Hi all, > > I've been running into several problems with avr-gcc from the Debian > unstable repo which is at version 4.3.5. I am compiling for ATMega168. > This problem was also present going back to compilers from 2007. > > All the problems traced down to a stack-allocated array whose pointer > ends up being set at or near 0x100 (whether that's over end of RAM or > not, I'm not sure), which when written starts clobbering the .data > section. But it only seems to happen in complex cases. > > Contrary to the names of the files, I'm not sure whether the following > demonstrates what I'm saying. > > > In clobber.lss lines 50&51, r28 is set to 0xFF and r29 to 0x04. > In no-clobber.lss on the same lines, the same occurs. > > In clobber.lss, r12&r13 become the address for adc_readings[8]. > In no-clobber.lss, r22&r23 become the address for adc_readings[8]. > > But the setup is different in the no-clobber case. In clobber.lss lines > 107-110 differ from no-clobber.lss lines 102-104 even though I don't > think they have to. This is the source of my problem I believe. > > For now, I just can't have stack-allocated arrays :(.
Where do you expect should these arrays be placed? You make main naked, so avr-gcc won't set up a frame pointer for you, however, it will use Y as frame pointer, anyway. That's no bug in the compiler, you intentionally shred your code. Johann > Thanks for any help, > Cory _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list