Forum: Mikrocontroller und Digitale Elektronik MSP430 flash


von Gerald W. (geri2008)


Lesenswert?

Hallo Leute!

Hab mal ne frage:
Kann ich eigentlich auch den flash eines msp430 (z.b. beim msp430f135) 
auch als datenspeicher und programmspeicher benützen. Ich meine, dass 
ich eine Routine schreibe, die mir 4 zahlen im Flash ablegt und bei 
einem Neustart dann wieder ausgibt.

Dann würd ich mir einen externen seriellen flash ersparen.

Hat das programm schon mal jemand gehabt bzw. gelöst?

mfg,Geri

von Jörg (Gast)


Lesenswert?

Hallo,

im Dokument slau144d.pdf (www.ti.com/.../MSP430x2xx Family User's
Guide) wird in Kapitel 7 (Flash Memory Controller) beschrieben,
wie's geht: erst Block löschen, dann den Block beschreiben. Ich
weiss aber im Moment nicht, ob ein Schreibzugriffslimit existiert
(z.B. 100.000 mal wiederbeschreibbar).

Gruss

Jörg

von Gast (Gast)


Lesenswert?

ja klar geht das, Du musst nur eben eine Adresse wählen von der Du weiß, 
dass sie nach einspielen Deines Programms noch nicht belegt ist.
Ich meine der flashspeicher geht bei 0x4000 los (davor ist ram), wenn 
Deu prog nun 13k hat sind das 1024 x 13 = 3400hex + 4000h (vom RAM) = 
7400hex.

Das wäre dann die Höchste Adresse von Deinem Prog, da man beim msp nur 
512byte weise löschen kann, muss du eben darauf aufrunden. Ich würde 
zudem noch ein wenig Luft dazwischen legen damit noch platz für später 
ist!

von Stefan (Gast)


Lesenswert?

>Kann ich eigentlich auch den flash eines msp430 (z.b. beim msp430f135)
>auch als datenspeicher...

Genau für sowas sind ja eigentlich die INFO-Flash Segmente gedacht. 
Diese haben gegenüber dem eigentlichen Programmspeicher-Flash kleinere 
Segmente, sind aber ansonsten völlig gleichwertig.
Andersherum gedacht ist es z.B. auch möglich ins INFO-Flash Teile des 
Programmcodes abzulegen.
Im Linkerfile können solche Zuordnungen vorgenommen werden, indem man 
dem Linker sagt, in welche Bereiche er Programmcode oder Daten ablegen 
soll!

von Gerald W. (geri2008)


Lesenswert?

Danke für die schnellen Antworten.

Hab mir grad den User guid hergeholt und hab nun auch festgestellt, dass 
es da ja einen eigenen Info - Sektor gibt.

Werd das mal Programmieren. wenns klappt stell ich edn code dann in die 
codesammlung!

mfg, geri

von Wolfgang-G (Gast)


Angehängte Dateien:

Lesenswert?

Gibt es schon.
Im Anhang ein Beispielprogramm von TI.
Man sollte es auf seine Bedürfnisse noch abwandeln.

von Nicco (Gast)


Lesenswert?

mmmh, da hab ich jetzt ein Problem...

nehme ich die Speisung weg (sowohl externe Netzteil als USB (TI 
Ez430-RF2500) Anschlüsse weg), wird diese Information Memory gelöscht!

Ich arbeite mit IAR und beispiel Code für F2132 
(msp430x21x2_flashwrite_01.c)
In (Projects -> Options -> FET Debugger) hab ich die 3 "Flash erase 
option" verwendet, ohne Erfolg. (Bei "Erase Main and Information Memory" 
ohne Überraschung :) )

Mit konstante Supply hab ich folgendes:
Debug without download -> alles OK
Download & debug -> Segment C gelöscht, Segment D OK

Ohne konstante Supply:
Debug without download -> Segment C gelöscht, Segment D random Werte
Download & debug -> Segment C gelöscht, Segment D gelöscht

Was ist da Falsch? Der MSP430 hat eine speisung von 3.4V, den Code nehme 
ich mal an, ist korrekt. Die erwähnten Optionen sind die einzige die ich 
in Zusammenhang mit Flash memory gefunden habe...

bin ratlos! Danke für eure Hilfe!

von Nicco (Gast)


Lesenswert?

na, wieso liegt dieses Post nicht in der MSP430 "Abteilung" ?
Muss ich doch ein neues Beitrag machen?

von Stefan (Gast)


Lesenswert?

Es wäre sinnvoller, Du würdest Dein Problem mal verständlicher 
formulieren.
Anscheinend hat's bisher noch keiner kapiert (... ich auch nicht...) ! 
;-)

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.