If I save some RAM by declaring strings in flash eg:
__flash unsigned char String1 = "String1";
__flash unsigned char String2 = "String2";
__flash unsigned char String3 = "String3";
and then try to pass the string locations to a function eg:
void PrintString(unsigned char * StringToPrint)
void PrintString(__flash unsigned char * StringToPrint)
I find neither will work. In the first instance the compiler tells me __flash unsigned char * is incompatible with unsigned char *, and in the second case, the compiler tells me a I can't use a memory attribute (__flash) with autos or parameters.
Anyone know how to pass the base address of strings stored in flash?