Forum: Mikrocontroller und Digitale Elektronik MSP430 Flashspeicher schreiben


von Joachim (Gast)


Lesenswert?

Hallo,
Ich habe den MSP430F5418A im Einsatz und möchte damit eine größere 
Datenmenge (ca. 5kB) im Flash speichern um diese später auszulesen. 
Weiter Einstellungen hab ich schon im Information-Memory gespeichert und 
das funktioniert auch ohne Problem.
Meine Idee war nun diese Daten im Bereich des Code-Memory abzulegen.
Ich habe also die gleiche Routine verwendet wie beim Info-Memory, nur 
die Adresse auf 0x25000 (Bank2, CodeMemory) geändert.
Allerdings sind die Daten nach dem Aus- und wieder Einschalten weg.
Muss ich sonst noch irgendwas verändern?
Kann ich diesen Bereich überhaupt als Speicher nutzen, oder was gibts es 
sonst noch für Möglichkeiten? Auf exteren Speicher möchte ich wenn 
möglich verzichten.

Gruß und Danke

von Jörg S. (joerg-s)


Lesenswert?

>Kann ich diesen Bereich überhaupt als Speicher nutzen
Ja, das sollte dem Compiler allerdings mitgeteilt werden damit er dort 
nichts ablegt.

Das könnte schon mal weiter helfen:
Beitrag "[MSP430] Struct Daten auf FLASH Speicher dauerhaft sichern"

von Joachim (Gast)


Angehängte Dateien:

Lesenswert?

Also ich habe schon im Linker Command File den entsprechenden 
Speicherbereich herausgenommen.
So wie es aussieht kann ich auch schreiben und lesen. Lediglich bleiben 
die Daten nach einem Reset nicht im Speicher. Dann sind die Daten weg.
Hab die Einstellungen mal im Anhang. Den Speicherbereich hab ich von 
0x20000 bis 0x25BFF festgelegt - also genau Bank2 des Code Memory.

von Joachim (Gast)


Lesenswert?

Ich habe im Debug-Modus mal den Speicher angeschaut und festgestellt das 
an der eingestellten Adresse (0x20000) nach dem Schreiben keine Daten 
liegen.
Verändere ich die Adresse auf 0x1900 (Information-Memory) dann seh ich 
die Daten an der entsprechenden Stelle im Speicher.
Wenn ich das aber richtig verstanden habe werden die Speicherbereiche 
exakt gleich beschrieben. Oder gibt es da doch einen Unterschied???

von Tobias K. (kurzschluss81)


Lesenswert?

das schreiben im Flash ist passwortgeschützt
schau mal dir die Register für Flash Operationen an.

von Erik (Gast)


Lesenswert?

Hallo Joachim,

habe ich schon mal gemacht mit F149
wenn ich mich recht erinnere muß in der *.xcl Datei die
einstellungen geändert werden . (für deinen Speicher und für 
Programmcode )
ich hatte meinen Speicherbereich an den belegten Programmcode
hinten drangehängt ,aber nicht bis zum Ende !!!
kann man ja reichlich Platz lassen.
am besten mal die Memory map angucken .

mfg Erik

da gab es mal von TI ein Beispielcode / so eine Art Sprachrecorder
im PDF format

von Joachim (Gast)


Angehängte Dateien:

Lesenswert?

Also die Speicherzuweisung dürfte passen.
Hab hier mal meinen Code.
Vielleicht hat jemand eine Idee warum es nicht funktioniert.
In den Beispielcodes kann ich nicht direkt das finden was ich brauche.

von Joachim (Gast)


Lesenswert?

Speichern funktioniert nun!!!
Ich habe die Daten jetzt auf Bank0 (ab Adresse 0x5C00) gespeichert und 
diesen Bereich natürlich auch vorher reserviert. Sonst habe ich nix 
geändert.
Kann ich bei 0x20000 nicht einfach so schreiben, oder an was liegt das?

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.