On second thought, perhaps the bug is in my understanding of how it
works.  In the following block:

char dow0[] PROGMEM = "Ned";
char dow1[] PROGMEM = "Pon";
char dow2[] PROGMEM = "Uto";
char dow3[] PROGMEM = "Str";
char dow4[] PROGMEM = "Stv";
char dow5[] PROGMEM = "Pia";
char dow6[] PROGMEM = "Sob";

PGM_P dow[] PROGMEM = { dow0, dow1, dow2, dow3, dow4, dow5, dow6 };

k = 0;
lcd_write_int16(dow[0]);  // address of dow0
lcd_write_int16(dow[k]);  // something unrelated

is it possible that the compiler does automatic replacement of dow[0]
with dow0, which is as intended, while dow[k] gets dereferenced as a
pointer to data memory?

Regards,
Zoran




_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to