mikrocontroller.net

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


Autor: AVRNoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein

Autor: AVRNoob (Gast)
Datum:

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

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst deine Befehle ins Flash schreiben, dort ausführen.

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: AB (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein ARM7 ist dann nicht langsamer ;)

Autor: AVRNoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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



Autor: AVRNoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das könnte jetzt eine Sehr interessante Disskussion zum Thema KI werden 
+g+

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.