Forum: Compiler & IDEs [AVR-GCC] struct-Initialisierung. PROGMEM und Strings


von Marko (Gast)


Lesenswert?

Hi,

ich moechte ein struct (eigentlich Array aus structs, aber das ist 
erstmal egal) ins Flash packen. Das struct enthaelt einen String. Also 
so:
1
struct foo {
2
    int bar;
3
    char * baz;
4
};

Das Problem: wie initialisiere ich dieses struct, so dass alles 
(einschliesslich String) im Flash landet? Ich konnte nur folgende 
Moeglichkeit finden:
1
const char PROGMEM str[] = "foobar";
2
3
struct foo PROGMEM mystruct = { 42, str };

Was allerdings ziemlich umstaendlich und unuebersichtlich ist. Viel 
lieber waere mir sowas in der Art:
1
struct foo PROGMEM mystruct = { 42, PSTR("foobar") };

Leider funktioniert das PSTR-Makro nicht bei Initialisierungen. Hat 
jemand eine Idee?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Geht nur so.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.