Forum: Mikrocontroller und Digitale Elektronik [msp430] Flash/Ram speicher.


von Bergie B. (bergie)


Lesenswert?

Hallo,


ich bin gerade dabei mich in den MSP430F248 ein zu arbeiten.

Nun möchte ich Daten auf dem Flash schreiben. Nun habe ich mir mal 
angeschaut, was ist überhaubt was in meinem MSP, und habe folgendes 
gefunden:


Code    FFFF
    4000

Unbenutzt  3FFF
    2100

RAM    20FF
    1100

Info    10FF
    1000

Boot Memory  FFF
    C00

Unbenutzt  BFF
    A00

RAM    9FF
    200

Peripherals  1FF
    0

Also habe ich unter: FFFF-8000 && 10FF-1000
Flash speicher.
Unter 1100-20ff habe ich meinen RAM

was ist aber mit 0000-9FF

ist das auch Flash speicher oder ist das RAM speicher?  Wieso wird das 
RAM von 02FFF - 09FF "mirrored at 0x18FF to 0x01100"

LG Bergie

von (prx) A. K. (prx)


Lesenswert?

Der Adressraum sieht tatsächlich ein bischen bizarr aus. Offenbar war 
die MSP430 Reihe ursprünglich nur mit maximal 2KB RAM ab 0x200 
konzipiert und als mehr nötig wurde hat man den Adressraum trotzdem 
kompatibel halten wollen, also ohne Boot+Info-Space zu verschieben.

Daher liegen diese 4KB nun ab 0x1100 aufwärts, denn erst da ist genug 
Platz im Adressraum für 4KB am Stück, aber die erste Hälfte davon lässt 
sich der Familienkompatibilität zuliebe ebenfalls ab 0x200 ansprechen.

Wenn man den Compiler nicht völlig verwirren will, dann sollte man sich 
entscheiden, ob man
(1) einen RAM-Bereich 0x1100-0x20FF
(2) zwei RAM Bereiche 0x0200-0x09FF und 0x1900-0x20FF
verwenden will.

von Bergie B. (bergie)


Lesenswert?

Danke !

Also ich würde vorschlagen:

(1) einen RAM-Bereich 0x1100-0x20FF
(2) einen RAM Bereich 0x0200-0x09FF

zu benutzten,

Auf der einen Seite viel RAM
auf der anderen abwärts Kompatibel.

Nun ich denke ich wäre auf die hier beschriebene Verwendung gekommen, 
ich dachte schon der Ram mit absicht in einen anderen speicher bereicht 
gespiegelt (flash?). Nur das ganze ergab einfach keinen Sinn.

LG

von (prx) A. K. (prx)


Lesenswert?

Bergie B. schrieb:

> (1) einen RAM-Bereich 0x1100-0x20FF
> (2) einen RAM Bereich 0x0200-0x09FF

Geht natürlich auch. Mit (2) verschenkst du 2KB RAM, aber wenn du das 
nicht benötigst ist das ok.

von Christian R. (supachris)


Angehängte Dateien:

Lesenswert?

Der Compiler wird sich ja hoffentlich um die sinnvolle Aufteilung 
kümmern. Oder willst du in ASM programmieren?

Anbei nochmal eine tabellarische Aufstellugn aus dem Datenblatt, da 
sieht man es etwas besser.

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.