Hi list,
I defined a structure in ROM, and am having difficulties accessing it using a pointer. Structure contains an integer and an array of strings. Accessing the array works, but when I try to read the integer number using the pointer, I don't get the correct value.... what am I doing wrong ? Compiler doesn't complain of anything, no errors no warning, but it doesn't retrieve the expected value... :-/ I put a sample code below... any idea ?? I must be doing something wrong again ! ;-) Regards, -- Vince Using: gcc 3.4.3 and libc 1.2.3 main.c ------ struct menu { uint8_t nb; char desc[][20]; }; //definition for the main menu const struct menu __ATTR_PROGMEM__ menu_main = { 3, //there are 3 entries in this menu {"-------Main--------", "Error Codes", "Display Parameters", "Data Logging" } }; int main (void){ uint8_t i; const struct menu * p; p = &menu_main; i = pgm_read_byte( p->nb ); //should return 3, but doesn't... lcd_print_str( p->desc[2] ); //works fine } void lcd_print_str(const char * addr) { char c; while( (c = pgm_read_byte(addr++)) ) lcd_putc(c); } _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list