Problem mit Schlüsselwort "volatile" und EEPROM

Gast #1861418
Lesenswert?
• ▲
▼
Hallo,

ich nutze AVR-Studio 4 mit WinAVR und programmiere einen ATmega644PA.

Vor dem Hauptprogramm habe ich folgenden Befehl:
"volatile unsigned int EEPROM fahrenmaxeep = 0;"

Im Hauptprogramm dann diese Anweisung:
"if(eeprom_read_word(&fahrenmaxeep) == 0)"

Diese Anweisung soll nur checken, ob schon Daten abgelegt wurden, oder 
ob das erst noch gemacht werden muss (also, wenn Inhalt == 0). Damit mir 
der Compiler die Anweisung nicht wegoptimiert, habe ich oben "volatile" 
angegeben. Beim kompilieren erhalte ich wegen dieser if-Anweisung 
folgende Warnung:

"warning: passing argument 1 of '__eerd_word_m644pa' discards qualifiers 
from pointer target type"

Weiss einer von euch vielleicht, warum der qualifier "volatile" in 
diesem Fall nicht beachtet wird?

Danke!

Gruß,
Thomas
#1861421
Lesenswert?
• ▲
▼
Wohl weil eeprom_read_word mit einem Parameter ohne volatile deklariert 
wurde.

Entweder lebst du mit der Warnung, oder castest das volatile beim Aufruf 
weg, oder machst dir eine eigene Funktion mit volatile-Parameter.

Abgesehen davon sehe ich gar keinen besonderen Sinn in deinem
volatile, weil der Compiler eh nie direkt darauf zugreifen
wird - das EEPROM ist ja nicht im normalen Adreßbereich.
Andere werden das eher wissen, aber ich denke, das ist hier
überflüssig.

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.