> -----Original Message----- > From: > [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > org] On Behalf Of Mark Litwack > Sent: Tuesday, May 13, 2008 6:48 AM > To: avr-gcc-list@nongnu.org > Subject: Re: [avr-gcc-list] prog_mem limitation? > > On Tuesday 13 May 2008 05:36:25 am Marc Wetzel wrote: > > Hi, > > > > I just found out the hard way, that the allocation of > prog_mem variables > > is not location independend. > > > > So, if you alloc a variable outside of a function, e.g. in the > > "standard" top area of your c-file, everything is working > as expected. > > But if you declare it inside a function, it does not work > (as expected). > > > > Working Example: > > -- > > const prog_mem char teststring[]= "Teststring"; > > > > void * test(void) { > > fprintf_P(uart, teststring); > > } > > -- > > > > Non-Working Example (but compiling fine): > > -- > > void * test(void) { > > const prog_mem char teststring[]= "Teststring"; > > fprintf_P(uart, teststring); > > } > > -- > > > > Is this the intended behaviour? > > What cause is here the trigger? > > > I'm not eaxctly sure why they behave differently, but the > latter causes teststring[] to be allocated in the .data > section instead of .progmem.
Probably because the second case does not have the 'static' keyword? Eric _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list