Define String in Flash

Gast #1495619
Lesenswert?

hallo,

ich habe eine Frage.Kann man überhaupt einen define String im flash 
speichern?

#define  ERROR0  "data out of range"
#define  ERROR1  "length out of range"
ich meine die einzelne define zuerst im flash anlegen und dann das Array 
im Flash speichern.


const uint8_t error[] PROGMEM={ERROR0 , ERROR1}
Gast #1495689
Lesenswert?

> const uint8_t error[] PROGMEM={ERROR0 , ERROR1}

ERROR0 und ERROR1 sind nur Präprozessor-Symbole, die zur Compilezeit 
durch das jeweilige Stringliteral ersetzt werden.

Im Binary bzw. Hex-File landet Folgendes:

const uint8_t error[] PROGMEM={"data out of range" , "length out of 
range"}
Persönliche Seite #1495744
Lesenswert?

Anzumerken sei noch, daß das Schlüsselwort PROGMEM nur bei der 
Harvard-Architektur erforderlich ist, die die AVRs leider verwenden.

Bei anderen Controllern mit von-Neumann-Architektur, wie z.B. MSP430, 
genügt die Angabe des Schlüsselworts const, damit der Linker die Daten 
im Programmspeicher unterbringt, und auch die Lesezugriffe auf diese 
Daten müssen nicht anders gehandhabt werden als die auf "normale" Daten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren