Forum: Mikrocontroller und Digitale Elektronik MSP430 Launchpad - RAM und Programm Flash, wieso ist das RAM kleiner?


von Launchpadfrage (Gast)


Lesenswert?

Beim MSP430 Launchpad werden ja zwei MSP430 µC mitgeliefert.
Beide haben 128 Byte RAM und 2 KByte Flash.

Der Flashspeicher wird für den Programmcode verwendet.


Wie aber muß man sich das dann auf dem Device bei der Ausführung eines 
Programms vorstellen?


Beim klassischen x86 PC ist es z.B. so, dass der Programmcode von der 
Festplatte/Diskette/USB-Stick usw. einfach komplett in den RAM geladen 
wird
und von dort arbeitet dann das Programm.
D.h. der Instructionpointer zeigt auf den derzeit auszuführenden Opcode 
des Programms, welches nun im RAM liegt und dann wird von dort aus 
weiterverfahren, je nach dem, was das für ein Opcode ist.
Der Programmcode wird beim x86 also, wenn man davon ausgeht, daß das 
Programm von Anfang bis Ende in einem Durchgang ohne Schleifen, Sprünge 
usw. durchgearbeitet wird, im RAM quasi durchgescrollt.
Der Programmcode wird also nicht auf dem externen Datenträger wie z.B. 
der Festplatte, dem Diskettenlaufwerk usw. durchgescrollt, sondern von 
dort nur in den RAM geladen.



Wie ist das aber beim MSP430 Launchpad?
Das Ding hat ja nur 128 Byte RAM, also viel zu wenig um ein 1 KB großes 
Programm, daß z.B. im 2 KB großen Flashspeicher gespeichert ist komplett 
in den RAM zu laden.

Wird das nur Stückchenweise in das RAM geladen oder ist es sogar so, daß 
der Instructionpointer auf einen Speicherbereich auf dem Flashspeicher 
zeigt, so daß der Flashspeicher quasi wie RAM benutzt wird?

von Launchpadfrage (Gast)


Lesenswert?

Noch etwas.


Damit das nicht verwechselt wird.

Beim x86 PC ist der Speicherplatz des Datenträgers zwar auch immer 
größer, als der des RAMs, aber beim PC kam es praktisch (von so Sachen 
wie der Auslagerungsdatei oder SWAP-Speicher mal abgesehen) kaum vor, 
daß Programmcode nachgeladen werden musste.
Bestenfalls wurden Daten nachgeladen, aber eben kein auszuführender 
Programmcode.

von Tom K. (ez81)


Lesenswert?


von spess53 (Gast)


Lesenswert?

Hi

Und bei deinem MSP wird das Programm im Flash ausgeführt. Der RAM wird 
nur für Variablen und Stack gebraucht.

MfG Spess

von Launchpadfrage (Gast)


Lesenswert?

Tom K. schrieb:
> PC: http://de.wikipedia.org/wiki/Von-Neumann-Architektur
> µC: http://de.wikipedia.org/wiki/Harvard-Architektur
>
> Grüße

Das ist eine falsche Verallgemeinerung.


Ob eine CPU nach der Von-neumann- oder Harvard-Architektur arbeitet hat 
nichts damit zu tun, ob es ein µC ist oder nicht.

Außerdem arbeitet der MSP430 nach der klassischen 
Von-Neumann-Architektur, also völlig falsch was du gesagt hast.

Die HA wird z.B. vom ARM verwendet, aber nicht vom MSP430.

von Launchpadfrage (Gast)


Lesenswert?

spess53 schrieb:
> Hi
>
> Und bei deinem MSP wird das Programm im Flash ausgeführt. Der RAM wird
> nur für Variablen und Stack gebraucht.
>
> MfG Spess

Genau das wollte ich wissen, danke.



Jetzt habe ich gerade im Internet entdeckt, daß es einen Simulator für 
den MSP430 gibt, siehe Artikel und da das Bild:
http://ece124web.groups.et.byu.net/labs/L06-archsim/archsim.html#LetsStart

Da wird das sehr gut dargestellt, aber weiß jemand, ob es diesen
"MSP430 Micro-Architecture Simulator" irgendwo legal zum Downloaden 
gibt?
Ich habe schon gesucht, aber nichts gefunden.

von g. b. (gunb)


Lesenswert?

Launchpadfrage schrieb:
> Jetzt habe ich gerade im Internet entdeckt, daß es einen Simulator für
> den MSP430 gibt, siehe Artikel und da das Bild:
> http://ece124web.groups.et.byu.net/labs/L06-archsi...
> rt

Nein, aber:

http://www.lauterbach.com/frames.html?home.html

Du musst nach Trace32 suchen, weiter nach Instruction Set Simulator

Beschränkt nutzbar. Selten gemacht, weil Controller besser.


Gruß

von Jörg S. (joerg-s)


Lesenswert?

Wenn dir ein Simulator auf Register Ebene reicht, kannst du auch den IAR 
MSP430 Compiler nehmen. Der ist bis 4k frei.

von Hag Nag (Gast)


Lesenswert?

Launchpadfrage schrieb:
> Tom K. schrieb:
>> PC: http://de.wikipedia.org/wiki/Von-Neumann-Architektur
>> µC: http://de.wikipedia.org/wiki/Harvard-Architektur
>>
>> Grüße
>
> Das ist eine falsche Verallgemeinerung.

Erst das und dann

Launchpadfrage schrieb:
>> Hi
>>
>> Und bei deinem MSP wird das Programm im Flash ausgeführt. Der RAM wird
>> nur für Variablen und Stack gebraucht.
>>
>> MfG Spess
>
> Genau das wollte ich wissen, danke.

Sag mal? Kennst Du den Unterschied der beiden Architekturen? 
Selbstbewusstsein scheint Dir ja nicht zu fehlen.

von Launchpadfrage (Gast)


Lesenswert?

Hag Nag schrieb:
> Sag mal? Kennst Du den Unterschied der beiden Architekturen?
> Selbstbewusstsein scheint Dir ja nicht zu fehlen.

Es ist trotzdem eine vNA.

http://de.wikipedia.org/wiki/MSP430#Speicheraufteilung

von g. b. (gunb)


Lesenswert?

Launchpadfrage schrieb:
> Hag Nag schrieb:
>> Sag mal? Kennst Du den Unterschied der beiden Architekturen?
>> Selbstbewusstsein scheint Dir ja nicht zu fehlen.
>
> Es ist trotzdem eine vNA.
>
> http://de.wikipedia.org/wiki/MSP430#Speicheraufteilung

Kollege,

hat hier irgendwer das Gegenteil behauptet? Du entlarvst dich mit deiner 
Ausgangsfrage als absoluter Anfänger, was ja nicht weiter schlimm ist.

Aber wenn dir Leute schon helfen, dann solltest du das Danke sagen mal 
nicht vergessen, und vielleicht auch mal innehalten, wenn dir jemand 
nicht gleich die perfekte Antwort liefert - sonst bekommst du am Ende 
gar keine oder eben nur blöde.

Würde ich an deiner Stelle mal drüber nachdenken, denn es kostet die 
Zeit anderer, dir zu helfen. Und die haben's eigentlich nicht nötig.

von Launchpadfrage (Gast)


Lesenswert?

Gun B. schrieb:
> Aber wenn dir Leute schon helfen, dann solltest du das Danke sagen mal
> nicht vergessen, und vielleicht auch mal innehalten, wenn dir jemand
> nicht gleich die perfekte Antwort liefert - sonst bekommst du am Ende
> gar keine oder eben nur blöde.

Deine Unterstellung, dass ich mich nicht bedankt hätte stimmt nicht, 
denn ich habe mich bei spess53 sehr wohl bedankt, lies oben nach, da 
steht das Wort "danke" dabei.

Aber ich muss mich nicht bei Tom K. bedanken, für eine Information die 
falsch ist, deswegen habe ich, wie es sich gehört, ihn korrigiert, hier 
mir deswegen ein falsches Verhalten vorzuwerfen ist von dir reichlich 
unverschämt.

von Launchpadfrage (Gast)


Lesenswert?

@Gun. B.
Noch etwas:


Vielleicht ist es dir nicht aufgefallen, genau wie das "Danke" auch, 
aber Tom. K hat eine eindeutige Zuweisung gemacht.
Vor den Links zu Harvard A. und V.N.A steht nämlich jeweils µC und PC 
und diese Zuweisung ist falsch, ihn dafür zurechtzuweisen war also 
folgerichtig.

von g. b. (gunb)


Lesenswert?

Launchpadfrage schrieb:
> @Gun. B.
> Noch etwas:
>
>
> Vielleicht ist es dir nicht aufgefallen, genau wie das "Danke" auch,
> aber Tom. K hat eine eindeutige Zuweisung gemacht.
> Vor den Links zu Harvard A. und V.N.A steht nämlich jeweils µC und PC
> und diese Zuweisung ist falsch, ihn dafür zurechtzuweisen war also
> folgerichtig.

Auf das WIE kommt's an.

von Martin Beuttenmüller (Gast)


Lesenswert?

<OT>
Bitte beruhigt Euch wieder:
der meiste Ärger entsteht (nur) durch Mißverständnisse ...

Einige der "Alteingesessenen" hier reagieren m.E. etwas überempfindlich.
Immer daran denken: jeder fängt mal klein an ...
</OT>

Gemeinsam gehts leichter
Martin

von Launchpadfrage (Gast)


Lesenswert?

Gun B. schrieb:
> Auf das WIE kommt's an.

Na dann schreib dir das mal hinter die Ohren.
Dein Pamphlet besteht nur aus Demütigungen, Beleidigungen und 
Unterstellungen.
Vielleicht fällt dir das nicht auf, aber ich zitiere mal deinen Mist:

1.
> Du entlarvst dich mit deiner
Ausgangsfrage als absoluter Anfänger,

2.
> dann solltest du das Danke sagen mal
nicht vergessen,

Anmerkung:
Du hast jetzt übrigens zwar um 9:07 hier nochmal reingerotzt, aber 
entschuldigt hast du dich für diesen Vorwurf bis jetzt noch nicht.
Fass dich hier mal an die Nase!

3.
> und vielleicht auch mal innehalten, wenn dir jemand
nicht gleich die perfekte Antwort liefert - sonst bekommst du am Ende
gar keine oder eben nur blöde.

Die Antwort von Tom K. war bereits blöde und auch eine Unterstellung, da 
sie unterstellt dass man den Unterschied zwischen HA und vNA nicht 
kenne, dabei hat meine Frage, wenn man mal genau liest und genau darüber 
nachdenkt, gar nichts mit HA oder vNA zu tun.
Der Flashspeicher hätte nämlich auch, genau wie beim PC auch, als bloßer 
statischer Datenspeicher herhalten können, es ist keine 
Selbstverständlichkeit, dass in einen solchen Bereich der 
Instructionpointer zeigt.

von Magnuou (Gast)


Lesenswert?

Wenn man "msp430 run code on ram" beim großen G eingibt, findet man 
bissl was.

von Holzweg (Gast)


Lesenswert?

Launchpadfrage schrieb:
> Der Flashspeicher hätte nämlich auch, genau wie beim PC auch, als bloßer
> statischer Datenspeicher herhalten können, es ist keine
> Selbstverständlichkeit, dass in einen solchen Bereich der
> Instructionpointer zeigt.

Wie steht es denn mit dem BIOS-Flash beim PC? Nach Reset geht es dort 
los. Ursprünglich lag es im Adressraum und das Programm wurde direkt aus 
dem Speicher ausgeführt. Später folgten Verbesserung durch Shadow-ROM 
für einen schnelleren Zugriff.


Launchpadfrage schrieb:
> Beim klassischen x86 PC ist es z.B. so, dass der Programmcode von der
> Festplatte/Diskette/USB-Stick usw. einfach komplett in den RAM geladen
> wird
> und von dort arbeitet dann das Programm.

Das liegt nicht an der x86 Architektur. Es handelt sich um eine 
Eigenschaft des Betriebssystems. Mit einem entsprechenden Programm kann 
das auch auf einem µC erfolgen. Manche laden Programme aus einem EEPROM, 
andere modifizieren den Code zur Laufzeit.

von Doof (Gast)


Lesenswert?

Launchpadfrage schrieb:
>> PC: http://de.wikipedia.org/wiki/Von-Neumann-Architektur
>> µC: http://de.wikipedia.org/wiki/Harvard-Architektur
>>
>> Grüße
>
> Das ist eine falsche Verallgemeinerung.

Da hast Du vollkommen Recht! Daher müssen diese Artikel natürlich sofort 
aus Wikipedia gelöscht werden!
Wieviele weniger Schlaue sind wohl schon auf diese völlig falsche 
Verallgemeinerung hereingefallen?
Nicht auszudenken, was das für den Wirtschaftsstandort Deutschland 
bedeutet...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Doof schrieb:
> Da hast Du vollkommen Recht! Daher müssen diese Artikel natürlich sofort
> aus Wikipedia gelöscht werden!

Unfug. Richtig lesen hilft; die falsche Verallgemeinerung besteht darin, 
zu behaupten, µCs würden implizit alle die Harvard-Architektur nutzen.

Und das hat nichts mit Wikipedia zu tun, sondern mit der von "Tom K." 
genutzten Formulierung.

Übrigens ist der Thread schon etwas angestaubt, meinst Du tatsächlich, 
daß Dein Beitrag die Diskussion hier inhaltlich etwas weiterbringt?

von Route_66 H. (route_66)


Lesenswert?

Launchpadfrage schrieb:
> Beim klassischen x86 PC ist es z.B. so, dass der Programmcode von der
>
> Festplatte/Diskette/USB-Stick usw. einfach komplett in den RAM geladen
>
> wird
>
> und von dort arbeitet dann das Programm.

Hallo!
Das ist weder für den klassischen PC noch für modernere komplett 
richtig.
Testweise kannst du ja mal die RAM-Riegel aus dem Mainboard ziehen. Ganz 
ohne RAM stellt die CPU durch das BIOS-Programm fest, dass sie kein RAM 
findet, und zeigt dies durch Piep-Töne oder auch auf einem 
angeschlossenen POST-Display an.

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.