> Der Text an sich muss doch irgendwo im Flash liegen.
> wenn das programm startet (init-Routinen), läd er den text in die
> variable "menu_item_01" im Flash. (variante 1)
Die Variable liegt im Flash und enthält bereits den Text (dafür ist es
ja Flash), da wird beim Programmstart nichts kopiert (wie auch, dazu
müsste dann ja ins Flash geschrieben werden).
Also mal etwas ausführlicher:
Variante 1:
Der Text "Hauptmenu" steht im Flash und wird in dieser Zeile
1 | strcpy_P(menu_line[0], (char*)(pgm_read_word( &(Hauptmenu[0]) ) ) );
|
vom Flash in das Array im RAM kopiert.
(Effizienter wäre es, ein modifiziertes LCD_PutStr zu schreiben, das den
Text direkt aus dem Flash holen kann)
Variante 2:
Der Text steht im RAM und wird in dieser Zeile
1 | strcpy(menu_line[0], "Hauptmenu");
|
vom RAM ins RAM (Array) kopiert. Zusätzlich steht er auch noch im Flash,
um den Text im RAM bei Programmstart initialisieren zu können.