Das assembler Programm schickt alle Daten (PORTS, Register, RAM, EEPROM)
über die serielle Schnittstelle an den PC.
Die Datei wird von dem Python script wieder in die richtige Reihenfolge
gebracht, die Daten werden den Ports zugeordnet und in eine html-datei
geschrieben.
Ich verwende das script als cgi, auf der commandozeile gehts aber auch.
cat /dev/ttyS1 >xx.bin
cat xx.bin | dump2html.py >x.html
Ich hab das script für einen 2313 geschrieben, vieleicht werde ich es
noch auf andere ausweiten
mfg
werner
Nachtrag:
der Kommandozeilenaufruf war Murks, weil nicht geflushed wird und ich
das Script umbenannt habe.
besser:
avrdump.py </dev/ttyS1 >x.html
damit nicht alle das tar auspacken müssen hab ich den output auf
meine hp geladen:
http://www.my-stuff.onlinehome.de/d.html
mfg
werner
PS: Kommentare sind willkommen da ich noch AVR-Anfänger bin.
Also ich verstehe nur Bahnhof:
Der Explorer ist ratlos, wie er das "avr_dump.tar" öffnen soll.
Mit "Python script" und "cat /dev/ttyS1" kann weder mein PC noch ich
etwas anfangen.
Ich vermute mal, es geht um eine spezielle AVR-Programierumgebung. Dann
sollte man das bitteschön auch angeben.
Eigentlich sollte man immer angeben, um welche Tools und Prozessoren es
geht.
Die Vermutung, daß es um AVRs geht habe ich auch nur aus dem Namen des
Links "avr_dump.tar" geschlußfolgert, muß also auch nicht mal stimmen.
Das hier ist ein Forum und keine Rateshow.
Peter
Ganz ruhig. Dass es um AVRs geht ist wohl anhand des Programmnamens
erkennbar, und dass du nicht weisst wie man eine tar-Datei entpackt oder
den Unix-Befehl cat anwendet ist nicht Werners Schuld.
Andreas
eine kleine Erläuterung:
python ist eine Scriptsprache wie perl, php, ruby, Visual Basic? und auf
nahezu jedem Linux-System installiert.
avrdump.py </dev/ttyS1 >x.html
und dieser Befehl sagt daß das programm avrdump.py von der 2. seriellen
Schnittstelle lesen soll und das Ergebnis in x.html zu schreiben
Die serielle Schnittstelle muß zuvor auf die richtige Baudrate
eingestellt werden (minicom, hyperterminal). (gibts auch was in der
Komandozeile?)
Zum Programm: ich habe gerade gemerkt daß die Flags verändert werden.
Werd ich bald korrigieren.
mfg
werner
> Die serielle Schnittstelle muß zuvor auf die richtige Baudrate eingestellt> werden (minicom, hyperterminal). (gibts auch was in der Komandozeile?)
ja, setserial.
Schmittchen, der Werners Beitrag/Idee sehr interessant fand.
Ach so, Unix ist also der Grund.
Einfach beim nächsten Mal mit hinschreiben und alle sind glücklich.
Trotzdem wäre wenigstens das Assembler-File auch für nicht-Unixer von
Interesse.
Gibts das also auch als gebräuchliches .zip oder gleich als .asm ?
Peter
@Andreas,
ich hab ja auch keinen Schuldigen gesucht, sondern nur welche Tools ich
brauche, wenn die Windows-Bordmittel es nicht tun.
Einen Schuldigen kann man in diesem Fall ja auch nicht benennen. Es gibt
nun mal unterschiedliche BS.
Es gibt aber z.B. das .zip-Format, daß soweit ich weiß auch unter Unix
funktioniert. Und dann finde ich es angebracht, dieses zu bevorzugen,
wenn man weltweit in Foren unterwegs ist.
Peter
Ist schon ok, war auch nicht so gemeint.
tar alleine ist allerdings wirklich etwas selten, meistens sind
tar-Dateien in komprimierter Form als .tar.gz anzutreffen. Mit WinRAR
und WinZip kann man beides problemlos verarbeiten.
hier die verbesserte Version von avrdump:
Das Programm sendet einen kompletten Speicherabzug an die serielle
Schnittstelle. Die daten werden von einem Python-Script in html
umgewandelt.
Das Packet enthält Assemblerdateien für AT90S2313 (AT90S4433) und
für AT90S8515 (AT90S8535). die geklammerten sind ungetestet
Beispieldaten von einem AT90S2313 und das Python-Script.
Die Programme wurden unter Linux geschrieben.
Die Datei läßt sich unter Windows mit WinZip öffen.
Tritt der Interrupt0 auf, so senden die Controller ihre
Registerdaten, Portregister, den RAM-Inhalt und die EEPROM-Daten
über die Serielle schnittstelle an den PC.
Die Reihenfolge der Daten hat sich seit der letzten Version geändert:
OFFSET 2 bzw. 3Byte vom stack
Register
Ports
RAM
EEPROM
Nachdem der PC die Daten empfangen hat werden diese von dem
Python-Script
interprätiert und in html umgewandelt.
Das Script hat die Aufgaben:
SREG und ein Temporäres register liegen am ram-ende.
beide Bytes werden zurückgeschrieben
auf dem Stack liegen ZL und ZH
beide Bytes werden zurückgeschrieben
im OFFSET liegt der orginale Stack
2-3 Bytes werden zurückgeschrieben.
der Stackpointer wird korrigiert
Die kompletten Daten werden jetzt je nach DEVICE den Portbezeichungungen
zugeordnet und als html ausgegeben.
Auf der Kommandozeile sieht das ganze so aus:
avrdump.py device <infile > outfile
z.B. avrdump.py AT90S2313 < /dev/ttyS1 > x.html
mfg
werner