mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller von "innen" programmieren


Autor: Hannes A. (yoshi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Community,

schon seit einiger Zeit spiele ich mit dem Gedanken, einen meiner 
AtMega8515 so zu behandeln, dass man ihm, während er läuft, mit 2 oder 
mehr Tastern ein Programm im AVR-opcode eingeben kann (ohne 
angeschlossenen Computer).

Hat hier schon mal jemand damit experimentiert? Oder kann mir jemand 
Tipps geben, wie das zu bewerkstelligen wäre?

PS: Ich schrecke nicht davor zurück, sämtliche Opcodes auswendig zu 
lernen!

Autor: Thomas S. (tsalzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann mußt Du sowas wie ein Betriebssystem einspielen, oder zumindest 
einen Interpreter der dauerhaft auf dem Controller läuft.
Ähnliches gab es mal mit der Basic-Briefmarke.

guude
ts

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da der AVR ne Harvard-Architektur ist, kann man das Programm zu Laufzeit 
eigentlich nicht verändern... höchstens über die Bootloader-Funktion, 
und auch da kann man den Flash immer nur blockweise beschreiben.

Autor: Hannes A. (yoshi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm... Danke für die Antworten. An das mit der Harvard-Architektur hab 
ich nicht gedacht. Also ist mehr oder weniger die einzige Möglichkeit, 
die Funktionalität während der Laufzeit zu verändern, indem man einen 
Interpreter schreibt?

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit dem Bootloader klappt das normal schon.

Wenn du einen seriellen Bootloader verwendest, brauchst du eigentlich 
nur einen Taster und ggf eine LED (für RX, und TX lol)



Gruß
Roland

Autor: Andreas Vogt (tico)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Roland Praml wrote:
> brauchst du eigentlich
> nur einen Taster
Stimmt, man könnte z.B. das Morsealphabet verwenden, um die Opcodes 
seriell einzutackern. Das wäre als Gag sicherlich nicht schlecht.

Gruss
Andreas

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Vorhaben hoert sich ja nicht gerade realistisch an... erinnert mich 
an dieses 8088-System aus meiner Ausbildungszeit, wo man ueber ein 
Zaehlwerk (wie man es von alten Kassettenspielern kennt) Adresse und 
Datenwort einstellen konnte und es mit einem Taster programmiert hat ;P 
Viel Spass sag ich da nur :D

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Das Vorhaben hoert sich ja nicht gerade realistisch an... erinnert mich
>an dieses 8088-System aus meiner Ausbildungszeit, wo man ueber ein
>Zaehlwerk (wie man es von alten Kassettenspielern kennt) Adresse und
>Datenwort einstellen konnte und es mit einem Taster programmiert hat ;P
>Viel Spass sag ich da nur :D

So habe ich meine ersten Z80-'Programme' auch 'geschrieben'. Zumindest 
lernt man dabei, das einfacher ist, sich erst einige Gedanken zu machen 
und nicht einfach wild drauf los zu programmieren.
Aber der der grundsätzliche Unterschied zwischen 8080 und AVR liegt in 
der Architektur (Neumann/Havard). Der AVR kann halt keine Programme im 
RAM ausführen.

MfG Spess

Autor: Ralf L.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weshalb AVR-Opcodes ?

Ein 6502 Code-Interpreter und per ATMega32 einen alten EMUF6504 mit 
Harware emulieren im RAM / IOs.

Encoding/Decoding ist für 6502 einfacher als für AVR.
Zudem hatte der nur 3 Arbeitsregister, den PC und eine Statusregister.
Das ist auch Debugging einfacher.

Und es gab früher Designs wie http://de.wikipedia.org/wiki/KIM-1, die 
alles an Bord hatten zur Programmierung.

Aber eine PC-Tastatur und ein LCD-Display würden das ersetzen können.

Der 6502 Code war relativ einfach und mit Akku, x-Reg und y-Reg konnte 
man weniger den Überblick verlieren als bei Assembler-AVR.
Und die Werte auch auf Display ausgeben.

Ich schätze mal, dass ein 6502 bzw. EMUF6504 Emulatur in Hardware auch 
für mehr Leute interessant wäre als irgendwelche Frickeleien am ATMega.

Per RS232 könnte man Sourcecode exportieren/ archivieren und etwas 
größere Software extern schreiben.

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.