mikrocontroller.net

Forum: Compiler & IDEs Define String in Flash


Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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}

Autor: tuppes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.