hallo, nach einem Neustart des stm32f10x soll der Ram bereich nicht gelöscht werden, damit die variablen nicht ihren wert verlieren, was mus ich hierfür ändern, einstellen?
der stm32 ist batteriegepuffert und hat einige variablen. fällt die hauptversorgung mal aus dann sollen die variablen nicht verloren gehen. es sind variable die sich schnell ändern, also ein eeprom scheidet aus
Falscher Lösungsansatz scheint mir. schau mal unter http://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren Kernaussage hier: [codeSinnvollerweise schreibt man Daten nur direkt ins EEPROM, wenn man sicher ist, dass dies nur selten vorkommt. Anderenfalls speichert man die Daten im RAM und kopiert sie erst in den EEPROM, wenn die Versorgungsspannung ausfällt. [/code]
aber das RAM ist doch über die batterie gepuffert, also müssten die daten doch vorhanden sein. ich will nur das wenn die main Funktion neu gestartet wird die variablen nicht 0 werden, dies kann ja auch z.b. beim debuggen durch den RESET erfolgen.
Dann musst du die Variablen in ne eigene Section machen, welche in deinem initcode nicht initialisiert wird. Zusätzlich musst du erkennen können, wenn der Bereich wirklich uninitialisiert ist, also Müll enthält, und dann entsprechend initialisieren.
Matthias Larisch schrieb: > Dann musst du die Variablen in ne eigene Section machen, welche in > deinem initcode nicht initialisiert wird. Zusätzlich musst du erkennen > können, wenn der Bereich wirklich uninitialisiert ist, also Müll > enthält, und dann entsprechend initialisieren. und wie mach ich das?
Mit sections funktioniert m.W. nur im Flash; das RAM ist nach einem Reset undefiniert. Die Cortexe haben aber einen Bereich, in dem wenige byte gepuffert werden (sofern Batterie dran). Wurde ja ebenso schon genannt.
ok danke, bei einem PIC geht des halt das die Variablen nach nem Reset ihren wert behalten, schade das es hier nicht geht. was meinst du mit toolchain? entwicklungsumgebung? Keil µVision 4
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.