Forum: Mikrocontroller und Digitale Elektronik Doofe Frage: Programm von externer Quelle Laden?


von leif (Gast)


Lesenswert?

Hallo Profis,

ist es eigentlich möglich, mit einem AVR Programmabschnitte dynamisch
zu laden (aus ext. Flash), und dann auszuführen?

Ein unqualifiziert gedachter Gedanke von

leif

von Hagen (Gast)


Lesenswert?

Jo, solange der AVR über das Self-Programming-Feature verfügt, dürfte
das wie bei einem Bootloader durchaus möglich sein.
Sollte man gleich einen Interpreter entwickeln so wäre dies sogar
standardmäßig möglich.

Gruß Hagen

von leif (Gast)


Lesenswert?

Hallo Hagen,

ich dachte jetzt eher an das RAM. Aber da siehts mit der Codeausführung
wohl schlecht aus ..

Ein Interpreter wär aber nicht wirklich effizient, oder?

Sprich ich reserviere mir im Programm-Flash einen Bereich, den ich dann
je nach Bedarf mit meinem '.exe' code überschreibe, und dann im
Programm an die entsprechende Stelle springe. Wie oft macht denn der
Flash das mit?

leif

von Moritz (Gast)


Lesenswert?

AVRs haben keine Neumann-Architektur, daher gibts im RAM nur Daten und
keine Programme.

'.EXE'-Code beim AVR?? - Da ist sicher ausführbarer Maschinencode
gemeint?

Mit einem Bootloader kann man bei den Megas Teile des Flashs neu
beschreiben. Wie, und wie oft das geht, findest du sicher im Datenblatt
deines AVRs und den ATMEL-Appnotes.

Ich denke mal, dass man einen Bootloader auch so schreiben kann, dass
er von deinem Massenspeicher (CF-Card?) lesen kann. Trotzdem wird das
kein "Mini-PC", der Flash unterliegt einer gewissen Abnutzung.
Bootloader dienen eigentlich dem unkomplizierten GELEGENTLICHEN
Programmupdate, nicht dem betriebsmäßigen "Laden & Ausführen" von
unterschiedlichen Programmen.

von leif (Gast)


Lesenswert?

Hallo Moritz,

danke für die Bestätigung! Genau das hatte ich mir gedacht, war aber
nicht sicher, ob's nicht doch ein work-around gibt. Ich habe leider
noch kein Gefühl dafür, was man mit dem vorhandenen Speicher anstellen
kann; aber sobald meine Pläne (zumindest theoretisch) ausgereifter
sind, werd ich mich auch zu praktischen Versuchen herablassen. ;-)


leif

von Hagen (Gast)


Lesenswert?

Die Frage ob Interpreter effizient sind oder nicht ist eine Frage des
Blickwinkels. Klar, sie sind meistens im gesamten langsammer aber nicht
unbedingt ineffizienter. In kryptographischen Architekturen kann man
über Interpetierende Programmierung eine vollständige SandBox aufbauen.
Somit steigt die Sicherheit des Gesamtsystemes, die Performance während
der Entwicklung und auch der Fehlersuche. Somit kann man effizient
Programme schreiben. Hauptvorteil eines Interpreters wäre aber das man
den P-Code eben aus einem beliebigen Medium heraus ausführen kann. Dies
muß nicht bedingterweise ineffizienter als ein Compiler sein.

Gruß hagen

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.