Ein Blick in den generierten Assembler beantwortet die Frage: Das Ding steht im Flash und wird vom StartUp ins SRAM kopiert. (Section .data wahrscheinlich).
Wie man die Strings im Flash lässt steht in [wiki="avr-gcc"]. Wo das Zeug landet kannst du sehen
-- im Assembler (Object-Sections bzw. wie es zugrgriffen wird
-- evtl. im Mapfile
-- evtl im Disassemble des Objects (auch .data disassemblen)
-- im Disassemble des elf
-- anzeigbar mit avr-nm, falls lokale Symbole nicht in der Tonne landen
Du schreibst die eine Funktion
void LCD_FONT_6x8_P (int, int, const char *)
die nichst aud dem SRAM liest, sondern aus dem Flash.
Aufruf:
Code:
#include <avr/pgmspace.h>
extern void LCD_FONT_6x8_P (int, int, const char *);
...
LCD_FONT_6x8_P (1, 2, PSTR ("Standby"));
Lesezeichen