Gibt es eigentlich die möglichkeit bei den AVR's einen MovC befehl durchzuführen um zb einige Befehle in einen Speicher zu laden um sie anschließend auszuführen? zb indem man den ProgrammCounter auf einen Speicher verschiebt wo ein Programm steht das zb per I2C geladen wurde? lg Noob
Nicht direkt. Befehle lassen sich bei den AVRs weder aus dem internen, noch aus externem RAM (direkt) ausführen. Der einzige Weg ist, dass das nachgeladene Programm mit SPM ins interne Flash geschrieben wird und dann dort ausgeführt wird.
Ich hab zwar seit rund 10 Jahren nichts mehr mit 8051 gemacht aber imho konnte man mit movc nur aus dem Codebereich Werte in dan Datenbereich kopieren. Selbstveränderlicher Code setzt ein externes paralleles RAM oder Flash voraus, bei dem mit etwas gluelogic der /OE Pin von /RD auf /PSEN umschaltbar ist.
> na toll, der Uralt 8051er is also flexibler als so ein HighTec AVR
Geh noch ein bischen weiter zurück: Fairchild F8 aka 3850, der m.W erste
massenhaft produzierte 8-Bit-Microcontroller. Harvard-Architektur und
anfangs aus 2-Chip bestehend - hatte er aber ein paar Bytes RAM im
Code-Adressraum, extra für solche Fälle.
Der AVR hat nunmal ein getrennten Adress / Datenbus, deshalb is das Teil auch so schnell (normal 1 Befehl je Clock), wenn du unbedingt Programmcode aus dem RAM ausführen möchtest nimm halt nen anderen MCU, der ist dann aber mit Sicherheit langsammer
is Relativ, AT&T Bell hat in den 80ern mit uC Programmen gearbeitet die sich selber überschieben haben um Speicher zu sparen, das problem war nur das wenn er mal sich selber falsch beschrieben hat is er aus seinem üblichen bereich gefallen und hat wirres zeug gemacht ...
Schönes Beispiel von dir ;) Ich hab sowas mal auf Z80 gemacht. Selbstmodifizierender Code für Mandelbrot Berechnungen. Auf CPC64. Kennt wohl keiner mehr. Was die Ausführung von Programmen im RAM zur Folge haben kann erleben wir alle ja täglich am PC. Wenn ein Programm fest im Flash sitzt muß man nur noch danach suchen welcher irre gewordene Pointer gerade den Datenbereich zermatscht. Gruss Holger
das könnte jetzt eine Sehr interessante Disskussion zum Thema KI werden +g+
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.