PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nibo2: Einstellungen zur Laufzeit speichern



goregath
23.11.2011, 10:24
Hallo bin neu hier.

Ich hoffe ich bin hier mit meinem Anliegen richtig.

Vom Studium aus haben wir die Aufgabe bekommen durch die Arbeit am Nibo2 das EmbeddedC-Programmieren zu lernen. Hat an sich auch alles großen Spaß gemacht und können tut der Nibo nun auch schon einiges, nun suche ich aber nach Mitteln und Wegen um beim laufenden Programm getätigte Einstellungen (am besten im Flash) zu speichern, damit nach einem Neustart die Einstellungen wieder geladen werden können.

Es handelt sich dabei um wenige bytes die ich speichern möchte. Meine Frage ist deshalb ob und wie das genau geht, was ich beachten sollte.

Ich habe Grundkenntnisse in C doch wirklich Hardwarenah habe ich noch nie Programmiert.

Grüße,

GoreGath

askazo
23.11.2011, 13:19
Daten zur Laufzeit im Flash abzuspeichern ist nicht möglich. Aber für genau solche Zwecke gibt es das EEPROM.
Funktionen zum lesen und speichern von Werten aus dem bzw. ins EEPROM liefert der AVR-GCC-Compiler schon mit.
Du brauchst nur die <avr/eeprom.h> einzubinden und die entsprechenden Funktionen (z.B. eeprom_write_byte() oder eeprom_read_byte() ) aufzurufen.
Für die Adressverwaltung bist Du selber verantwortlich, d.h. Du musst festlegen, auf welcher Adresse im EEPROM ein Datum gespeichert werden soll und es dann entsprechend von dort auch wieder auslesen.

Gruß,
askazo

goregath
23.11.2011, 14:56
Danke für die schnelle Antwort!
Ok das hab ich schon fast geahnt, also würde es sinnvoll sein die Daten an das Ende des EEPROM zu speichern? bislang habe ich nur gesehen, wie die Kalibrierungsdaten des NDS3-Moduls an erster Stelle in den EEPROM geschrieben werden.

Gruß,

GoreGath

askazo
23.11.2011, 21:12
Wie gesagt, die Adressverwaltung bleibt Dir überlassen. Ich kenne mich mit dem Nibo nicht aus, von daher kann ich Dir nicht sagen, was der von sich aus so im EEPROM speichert bzw. was evtl. Zusatzmodule da brauchen. Ans Ende oder zumindest in den mittleren Bereich des EEPROMs zu speichern wäre allerdings wohl wirklich die sicherste Methode. Du kannst das EEPROM auch auslesen und Dir anschauen, auf welchen Adressen bereits Daten geschrieben sind.

Gruß,
askazo

goregath
24.11.2011, 07:48
Ja das hab ich schon gemacht, ist wirklich alles bis auf ein paar Bytes am Anfang alles jungfräulich.

danke für die hilfe,

GoreGath