PS and if you define a struct, you can put it in both RAM and flash, and copy between them, like:
struct mystruct {
char a;
char b;
};
const struct mystruct inflash = { ... };
struct mystruct inram;
Then, to copy from flash to RAM is:
memcpy(&inram, &inflash, sizeof(inram));
And to copy from RAM to flash is (using the func in the previously indicated post):
flash_write_words((uint32 *)&inflash, (uint32 *)&inram, sizeof(inflash)/sizeof(uint32));
Note that a) the struct must be a multiple of 4 bytes, and b) the flash_write_words() is highly MCU dependent -- you can see versions for many of the CF V2 and V1 cores in the file I posted.
What MCU are you using? (Once you cross from talking about RAM to flash, it all totally depends on the MCU.)
Also note that for flash updates you make that you really care about, you need to store two copies of the data (since updates are not atomic) and use the old one up to the point that the new one is completely updated, using an algorithm such as the one here:
http://forums.freescale.com/freescale/board/message?board.id=CFCOMM&message.id=4348&query.id=25059#M...
-- Rich