mikrocontroller.net

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


Autor: Bergie B. (bergie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bergie B. (bergie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.