Forum: Mikrocontroller und Digitale Elektronik AVR movC gibts sowas noch?


von AVRNoob (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

Nein

von AVRNoob (Gast)


Lesenswert?

na toll, der Uralt 8051er is also flexibler als so ein HighTec AVR ... 
toll

von arc (Gast)


Lesenswert?

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.

von Jörg (Gast)


Lesenswert?

Du kannst deine Befehle ins Flash schreiben, dort ausführen.

von Dieter Werner (Gast)


Lesenswert?

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.

von A.K. (Gast)


Lesenswert?

> 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.

von AB (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

Ein ARM7 ist dann nicht langsamer ;)

von AVRNoob (Gast)


Lesenswert?

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 ...

von holger (Gast)


Lesenswert?

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



von AVRNoob (Gast)


Lesenswert?

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