AVR movC gibts sowas noch?

Gast #509995
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
Gast #510006
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.
Gast #510051
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.
Gast #510064
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.
Gast #510073
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
Gast #510106
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 ...
Gast #510161
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


Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.