Forum: Mikrocontroller und Digitale Elektronik stm32f10x - RAM nicht löschen


von stmler (Gast)


Lesenswert?

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?

von Fabian (Gast)


Lesenswert?

Dein Konzept.
Wozu soll das gut sein?

von stmler (Gast)


Lesenswert?

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

von Marc (gierig) Benutzerseite


Lesenswert?

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]

von stmler (Gast)


Lesenswert?

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.

von Matthias Larisch (Gast)


Lesenswert?

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.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Schau Dir mal die "Backup registers" an.

von stmler (Gast)


Lesenswert?

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?

von Lutz (Gast)


Lesenswert?

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.

von Matthias (Gast)


Lesenswert?

Welche Toolchain?

von stmler (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.