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