avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [avr-gcc-list] prog_mem limitation?


From: Weddington, Eric
Subject: RE: [avr-gcc-list] prog_mem limitation?
Date: Tue, 13 May 2008 09:45:53 -0600

 

> -----Original Message-----
> From: 
> address@hidden 
> [mailto:address@hidden
> org] On Behalf Of Mark Litwack
> Sent: Tuesday, May 13, 2008 6:48 AM
> To: address@hidden
> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]