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
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
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.