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
>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"
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.
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???
das schreiben im Flash ist passwortgeschützt schau mal dir die Register für Flash Operationen an.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.