Variablen mit IAR im Flash ablegen

Gast #34436
Lesenswert?
• ▲
▼
Hi,

da ich mein CAN-Bus Problem nicht lösen konnte, probiere ich jetzt 
einfach mal einen anderen Compiler: IAR

Nur wie speichert man da Zeichenketten im Flash?

mitm GCC ging das so

PGM_P Zeile1[] = "hello world!";

mit IAR geht das so auf jeden Fall nicht mehr (compiler meckert).

Bei IAR steht in der cavr.pdf auf Seite 72 (Zitat):

"The AVR IAR C/EC++ Compiler normally copies strings from flash to data 
memory before main() is called, or lets you place them in external ROM 
(if available). Other string literals can be placed explicitly in flash, 
for example like this:
__flash char str1[] = "my string";"

bringt bei mir aber beim compilieren nur den Fehler:
"memory attributes are not allowed on auto variables or parameters"
Also wie mach ichs richtig?
Gast #34437
Lesenswert?
• ▲
▼
Hallo, die Fehlermeldung kommt dann, wenn Du eine lokale Variable mit 
__flash deklarierst. Aber das macht ja sowieso keinen Sinn. Probier es 
mal mit einer globalen Variablen.

Gruss Jens

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.