Strings literals are stored in flash and copied into RAM as part of the startup of the application (along with all other preinitialized variables). However to be safe it's better to explicitly declare anything you want to be in flash as const. If you didn't declare the array that you were using for is_any as a const then the string data would be copied from flash to ram at startup. If it is declared as const then it stays in flash and is referenced directly from there without a ram counterpart. -- Sean At 20:46 2/10/2006, you wrote: >Sean, > >Thanks. Does this mean the compiler does not 'move' strings like this >into ram? So, I need not worry about the 'const' label? >I have a huge font array that I want in flash of course. > >TIA > >Glen > > >Sean wrote: > > test.c:32: warning: passing arg 1 of `is_any' discards qualifiers from > > pointer target type > > > > this is because you're passing a "const uchar *" as a "uchar *" > > param. Changing either the function to is_any(const unsigned char > > *,char) or removing const from the string declaration removes this > > warning, but it's only a warning, it won't effect the execution. > > > > -- Sean
Message
Re: [lpc2000] gnuarm question
2006-02-11 by Sean
Attachments
- No local attachments were found for this message.