Hallo zusammen Bin noch ein bischen grün hinter den Ohren was embedded programming betrifft. Hab einen MC9S12XDP und Programmiere in c++. Über einige Taster kann der Benutzer Einstellungen vornehmen. Mein Problem ist nun das ich es dem Benutzer ermöglichen soll nach dem aus- und einschalten wieder mit den alten Einstellungen weiter zu arbeiten. Hab mir gedacht das ich die Einstellungen im EEPROM oder im Stack speichere. mein Problem ist nur wie mache ich das. Wie ist der C++ Befehl um etwas auf die Stack Adresse zu speichern.
blub wrote:
> Wie ist der C++ Befehl um etwas auf die Stack Adresse zu speichern.
Da wird dir nur jemand helfen können, der exakt den gleichen
Compiler benutzt wie du auch. C++ weiss nichts von EEPROM oder
dergleichen, daher wird sowas immer durch Erweiterungen in Form
von vorgefertigten Funktionen oder speziellen Schlüsselwörter
erledigt. Unnötig zu sagen, dass sowas keinerlei Norm unterliegt
und daher ist das von Compiler zu Compiler unterschiedlich.
Alternativ kannst du natürlich mal deine Hilfe bzw. das Handbuch
durchstöbern. Da steht sicher auch was zu dem Thema drinnen.
Und nein: Am Stack willst du das sicher nicht speichern.
Üblicherweise legst Du Dir einfach ein struct/union z.B. "st_meineEinstellungen" an, in dem Du die Einstellungen ablegst die nach dem Start wiederhergestellt werden sollen, so dass alle Deine Einstellungen in einem zusammenhängenden (festen!!! nicht stack!!!) Speicherbereich liegen. Beim Systemstart liest Du dann die Daten immer aus dem EEPROM wieder in dieses struct/union und +wupp+ sind Deine Einstellungen wiederhergestellt. Zum Abspeichern vor dem Ausschalten muss Dein System aber noch in der Lage sein, der SW mitzuteilen, dass gleich der Saft weggeht, bzw. gerade noch genug Zeit zum speichern im EEPROM bleibt. Das Speichern selbst erledigst Du, indem Du dem EEPROM-Treiber/der Hardware mitteilst, dass Du sizeof(meineEinstellungen) Bytes ab RAM-Adresse *meineEinstellungen ins EEPROM ab Adresse 0x1234 schreiben willst. Für den S12X-Kern gibt es da mit Sicherheit schon etwas fertiges. Such mal nach s12x eeprom per google! TIP: Hänge eine Prüfsumme an die Einstellungen an, die Du mit speicherst. Immer wenn die Prüfsumme nach dem Laden aus dem EEPROM nicht stimmt, belege die Einstellungen mit sinnvollen Default-Parametern. Vertraue Parametern aus dem EEPROM nicht besonders (es sei denn, Du legst sie nach 2aus3 ab) - sprich: mache bei allen Parametern aus dem EEPROM plausibilitätskontrollen / wertebereich-checks. Hintergrund: Es kann Dir je nach Gestaltung der Prüsumme passieren, dass die Summe stimmt, aber die Daten trotzdem buggy sind. Gruß, C
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.