const vars are located in rom unless stated otherwise...

const char *a = "pointer to string which can be modified";      // pointer will 
be 
located in ram, string data in rom, so you can modify 'a' (say, a = 0x1234)
const char ab[] = "string which cannot be modified";    // pointer ab will 
reside 
in rom
const int b = 5;        // will be also located in rom
const long c;   // is strange defenition, but 'c' will be located in ram




On Wednesday 04 December 2002 12:08, David Brown wrote:
> The C standard says that "const" variables are still variables, and have to
> go in ram - as far as I know, the word "const" aids the compiler in
> generating warnings, and aids optomisation, but nothing more.  Similarly,
> strings are also always copied to ram.

depends on implementation.
Almost all compilers back-ends can be configured to put const vars to '.text' 
section. gcc is.

~d



>
> What is the best way to force data into flash, with no copy in ram?  This
> can be quite relevant for strings, and is very important for lookup tables
> - the project I am working on at the moment is going to have crc routines
> which use lookup tables, so I'd be grateful if anyone can give me a hint as
> to how to do this.
>
> mvh.
>
> David
>
> > well, this is in C standard.
> >
> > Briefly:
> > when you declare some var as 'var[]' it means that this should be located
>
> in
>
> > RAM irrespective to the 'const' modifier (and can be modified later - it
>
> is
>
> > writable sting).
> > if it is 'type *var = ...' this will be located in text section (ROM).
> > So, you're declaring constant _variable_ (const _writable_ string) about
>
> which
>
> > compiler complains.
> > Anyway, the result code correct, just waste of RAM.
> >
> > ~d
> >
> > On Wednesday 04 December 2002 11:34, Paul Burke wrote:
> > > I do a lot of this kind of thing:
> > >
> > > const char Antinomian[] = "The elect cannot commit mortal sin\r\n";
> > >
> > > ....
> > >
> > > if( Religion == RANTER)
> > >  puts( Antinomian);
> > >
> > > etc. etc.
> > >
> > > The const is just to force the string into the code space, and conserve
> > > ram.
> > >
> > > Each time I do this, the compiler throws up a warning that the type
> > > qualifcation is lost when the parameter is passed.
> > >
> > > True, but as I get a lot of such warnings, it gets difficult to tell if
> > > there are any useful warnings in there, or indeed any errors.
> > >
> > > Is here any waning level setting that supresses this (while leaving
> > > more useful type conflict etc. warings untouched)?
> > >
> > > Paul Burke
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.net email is sponsored by: Microsoft Visual Studio.NET
> > > comprehensive development tool, built to increase your
> > > productivity. Try a free online hosted session at:
> > > http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
> > > _______________________________________________
> > > Mspgcc-users mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> >
> > --
> > /********************************************************************
> >      ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
> >       `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys
> >       (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
> >     _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
> >    (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
> >  ********************************************************************/
> >
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: Microsoft Visual Studio.NET
> > comprehensive development tool, built to increase your
> > productivity. Try a free online hosted session at:
> > http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
> > _______________________________________________
> > Mspgcc-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Microsoft Visual Studio.NET
> comprehensive development tool, built to increase your
> productivity. Try a free online hosted session at:
> http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
> _______________________________________________
> Mspgcc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users

-- 
/********************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys 
      (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
   (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
 ********************************************************************/


Reply via email to