Forum: Mikrocontroller und Digitale Elektronik Einstiegs-Controller mit Code in RAM


von Peter (Gast)


Lesenswert?

Ich höre immer wieder von Leuten, welche selbstmodifizierenden Code 
schreiben wollen. Auf heutigen PCs ist das ja nicht mehr gut möglich.

Welchen Mikrocontroller, der seinen Code im RAM hat, könnte ich denen 
zum Einstieg empfehlen? Damit es schön einfach bleibt, denke ich 
beispielsweise an USB-Sticks. Gibt es da was?

von Marius W. (mw1987)


Lesenswert?

Schau dir mal die 32-bitter an. ARM Cortex zum Beispiel. Damit sollte 
das was du vor hast möglich sein.

MfG
Marius

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

MSP430 kann Code aus dem RAM ausführen, allerdings haben die meisten 
MSP430-Varianten recht wenig davon. Der "dickste" hat 16 kiB (und 256 
kiB Flash-ROM).

von (prx) A. K. (prx)


Lesenswert?

Peter schrieb:

> Ich höre immer wieder von Leuten, welche selbstmodifizierenden Code
> schreiben wollen. Auf heutigen PCs ist das ja nicht mehr gut möglich.

Es ist durchaus noch möglich, aber man muss die Sicherheitsmechanismen 
beachten und muss abhängig von diversen Faktoren mit 
Performanceeinbussen rechnen, insbesondere beim Pentium 4.

JIT-Compiler für beispielsweise Java tun letztlich nichts anderes als 
innerhalb vom Prozesskontext ad hoc Code zu erzeugen, der zunächst per 
Datenzugriff erzeugt und anschliessend als Code ausgeführt wird. Das ist 
substantiell nicht viel anders als selbstmodifizierender Code.

von (prx) A. K. (prx)


Lesenswert?

Marius Wensing schrieb:

> Schau dir mal die 32-bitter an. ARM Cortex zum Beispiel. Damit sollte
> das was du vor hast möglich sein.

Als "Einstiegs-Controller" sind die nicht vorbehaltlos zu empfehlen. 
Aufgrund der Komplexität.

von (prx) A. K. (prx)


Lesenswert?

Peter schrieb:

> Welchen Mikrocontroller, der seinen Code im RAM hat

Konkret weshalb soll der Code ins RAM?

von Peter (Gast)


Lesenswert?

> Konkret weshalb soll der Code ins RAM?

Der Code soll im RAM sein, damit die die Wartezeit zwischen der 
Entscheidung Code zu modifizieren und ihn dann auszuführen gering ist.

von (prx) A. K. (prx)


Lesenswert?

Aber weshalb willst du ihn überhaupt ad hoc modifizieren?

von Peter (Gast)


Lesenswert?

Danke Rufus, ein MSP-430 USB Stick ist bei TI 20$ zu haben und sieht 
genau danach aus, was ich mir vorgestellt habe.

von (prx) A. K. (prx)


Lesenswert?

Der mit dem F2013 drauf? Also 128 Bytes RAM für Code und Daten?

von Peter (Gast)


Lesenswert?

> Aber weshalb willst du ihn überhaupt ad hoc modifizieren?

Ich selber will ihn gar nicht modifiziern. Ich suche nur eine Plattform, 
die ich Leuten empfehlen kann, welche unbedingt mal 
selbstmodifizierenden Code schreiben und erleben wollen. Da eine der 
ersten Ideen, die man dabei bekommt, Schleifen sind, sollte möglichst 
nicht für jede Iteration geflasht werden.

Dass man jedes konkrete Problem effizienter ohne selbstmodifizierenden 
Code löst ist für mich selbstverständlich.

von Peter (Gast)


Lesenswert?

> Der mit dem F2013 drauf? Also 128 Bytes RAM für Code und Daten?

Ja, den hatte ich gesehen. Es geht ja nur ums Prinzip.

von Olaf (Gast)


Lesenswert?

> Welchen Mikrocontroller, der seinen Code im RAM hat, könnte ich denen
> zum Einstieg empfehlen?

Microcontroller von Renesas koennen das. Also R8C/M16C. Ausserdem haben 
sie relativ viel Ram. So 8-40kByte.


> Damit es schön einfach bleibt, denke ich
> beispielsweise an USB-Sticks.

Kann ich jetzt nicht beantworten. Das ist ja auch eine relativ neue Sau 
im Dorf.

> Ich suche nur eine Plattform,
> die ich Leuten empfehlen kann, welche unbedingt mal
> selbstmodifizierenden Code schreiben und erleben wollen.

Dann waere es vermutlich klueger einfach einen Emulator auf dem PC zu 
installieren und dort einen C64, Apple][, usw, laufen zu lassen.


Olaf

von Peter (Gast)


Lesenswert?

> Dann waere es vermutlich klueger einfach einen Emulator auf dem PC zu
> installieren und dort einen C64, Apple][, usw, laufen zu lassen.

Das sollte ich auf jeden Fall als Tip aufnehmen. Wer damit leben kann, 
dass sein Code nur emuliert wird, kommt damit sehr gut zu Streich. 
Danke.

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.