Forum: Compiler & IDEs MSP430: Zugriff auf flash mit MSPGCC


von Michael Redecke (Gast)


Lesenswert?

Moin !
Brauche einen Tip wie ich unter MSPGCC bei einem MSP430F123 auf den
flash-Speicher zugreifen kann. Habe eine kleine Liste mit Konstanten
die etwa 100 byte lang ist und die ich natürlich nicht ins knappe RAM
kopieren kann. Müsste die ins flash schreiben, vielleicht hinter den
Programm-code. hat jemand einen Link/Tip ?

Gruss Michael aus Nordfriesland

von OldBug (Gast)


Lesenswert?

Hallo Michael!

Schau mal in examples/ im mspgcc Verzeichnis, da ist im Verzeichnis
rawsources/ die Datei flash.c. Die sollte das eigentlich schon ganz gut
beschreiben. Ansonsten einfach noch mal fragen!

Gruß,
Patrick...

von Michael Redecke (Gast)


Lesenswert?

Hallo Patrick ! Habe die Datei gefunden, kannte sie auch schon. Aber
dort wird nur der schreibende und löschende Zugriff beschrieben...
Michael

von OldBug (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Michael!

Hier mal ein paar Routinen für den Flash-Zugriff. Bitte die wenigen
Kommentare lesen. Diese Routinen sollen nur anregen! Alles notwendige
musst Du noch selber anpassen (Flash-Segment beispielsweise, oder die
Größe des Flash-Mirrors im RAM etc...).

Hoffentlich hilfts Dir ein wenig, wenn ich mal Zeit habe, dann kommt da
auch noch etwas mehr Doku rein :)

Gruß,
Patrick...

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn es nur um's Lesen geht:

const char array_im_flash[4] = {1, 2, 3, 4};

von Benjamin Johann (Gast)


Lesenswert?

Super! Die Routinen helfen schonmal ein bisschen. Ich habe nur noch
nicht so wirklich raus, wie ich an die Adressen komme und woran ich
sehe, ob sie schon mit irgendwas beschrieben sind. Passt  an jede
Adresse ein Byte? Warum tauchen immer wieder diese Schleifen auf?
Ich habs einfach noch nicht gecheckt. Kann mir jemand helfen?
Benni

von Michael Redecke (Gast)


Lesenswert?

dank Oldbug !
Bevor dein posting kam hatte ich schon mit einem array "const char"
experimentiert und im listing gesehen dass es vom linker in den
code-bereich gelinkt wird. ich denke dass mit einem stinknoralen
zugriff a la "wert = tabelle[ x ]" wobei tabelle mit const char
tabelle[ 100 ] beispielsweise angelegt wurde, gearbeitet werden kann.
inzwischen hat das hier noch jemand vorgeschlagen. werde das ganze
heute abend ausprobieren.

übrigens: hier gehts um ein kleines gerät für ein freund der als
tischler eine 100 jahre alte bandsaege hat die von einem traktor
angetrieben wird und deren lager immer mal gerne heisslaufen. bei einem
lagerschaden hat das ding die eigenschaft auseinanderzufliegen. die
vorbersitzer berichten von 2 getöteten arbeitern bis jetzt... aber nun
ist diese killermaschine in einem käfig eingebaut und der msp soll 10
lagertemperaturen sicherheitshalber checken und ggf warnen.
gruss michael

von OldBug (Gast)


Lesenswert?

Hm, ja, da sind meine Routinen wohl ein bißchen oversized. Ich dachte,
Du wolltest in eines der "Info-Memories" schreiben, dafür sind die
Routinen gedacht.
Naja, ich werd' sie demnächst mal in die Codesammlung packen, wenn ein
bißchen mehr Doku da ist :-)

Gruß,
Patrick...

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.