Hallo, ich habe hier ein hex-file für einen atmega329p (Arduino2009) und ich weiss, daß der code 2 bits am PORTD ändert. Gibt es eine Möglichkeit dieses hex-file in einen Simulator zu laden und ein gtkwave kompatibles file damit zu generieren ? Leider habe ich keinen vernünftigen Logikanalysator oder Digitaloszi. Mit BusPirate bekomme ich zwar Ergebnisse, diese sind aber nicht hinreichend genau auszuwerten. Mit "simavr" soll es vermutlich gehen, habe es auch probiert, klappt aber nicht. Möglicherweise mache ich da auch was falsch. Gibt es weitere Möglichkeiten ? Ich benötige ein präzises timimg-diagramm. danke wally
Also du willst mit einem Simulator das Hex File durchlaufen lassen und die Portänderungen aufzeichnen um diese dann in GTKwave anzuzeigen wie in einem Logicanalyzer? Das erste Problem was du schon mal hast ist, dass GTKwave nur spezielle Formate einlesen kann, welche im Mikrocontroller Bereich unüblich sind. Diese Formate kommen aus dem FPGA Bereich und du müsstest dein Timing Diagramm (woher auch immer) erst in ein solches Format umwandeln. Und einen Simulator zu finden, welcher ein reines hex File simulieren kann und dann ein Timing Diagramm aufzeichnet, dürfte schon schwierig werden. Eventuell kannst du ja in avrstudio nur das hex file simulieren lassen, aber keine Ahnung ob das ohne Quellcode funktioniert. Ciao, Rainer
Hallo Rainer, danke für die Antwort. Ja, die gtkwave-Geschichte kenne ich von meinem Papillo board. (Gadget Factory FPGA, Xilinx etc.) Allerdings stört es mich nicht,daß es da herkommt. In AS4 konnte ich die hex-datei laden und dann ein project drumherumbauen. Im Simulator kann ich dann schön den PORTD beobachten, aber nciht so richitg vermessen. Man kann zwar "zu Fuß" breakpoints setzen und vermessen, ist mir aber zuviel Gefummel, da das Timing-Muster nicht ganz trivial ist. In AS6 kann ich die hex-Datei gar nicht in den Smulator bekommen. Das läuft in dieser Version sicher irgendwie anders. Ausserdem steigt mein Blutdruck immer recht hoch wenn ich mit Windows arbeiten muss :) Ich denke ich sollte an simavr dranbleiben, da dieser Simulator die gtkwave formate ausgibt. Leider komme ich nicht dahinter wie simavr genau zu bedienen ist, komme aber vielleicht noch dahinter. Tipps und/oder Beispiele zur hex-simulation in AS6 und zu simavr sind hochwillkommen. Grus wally
Ich habe bisher nur ein klein bisschen mit AS6 gearbeitet, finde es aber nicht so wirklich toll, was die Simulation angeht. Bin da von Keil deutlich besseres gewöhnt, zumindest was den Simulator angeht. ;) Deshalb kann ich dir da auch nicht sagen, wie man damit hex Dateien simulieren kann und wie man Timing Analysen darin speichert. Ich kenne gtkwave auch nur daher, dass ich es für meinen LogicAnalyzer und Oszi als Anzeige der gespeicherten Daten benutze. Habe mir dafür extra einen Konverter geschrieben, der die diversen Formate (*.wfm und *.lpf ins VCD Format für gtkwave konvertiert. :)
Hi, um etwas OpenSource-Werbung zu machen :-) > ich habe hier ein hex-file für einen atmega329p (Arduino2009) und ich > weiss, daß der code 2 bits am PORTD ändert. Gibt es eine Möglichkeit > dieses hex-file in einen Simulator zu laden und ein gtkwave kompatibles > file damit zu generieren ? Nach Sender Erewan: im Prinzip ja, aber ... Oder ernsthaft: simulavr hat mittlerweile genau dieses Feature, allerdings ist der atmega329 noch nicht implementiert. (das ist das eine "aber", das andere ist, das simulavr aktuell nur elf-Files lädt, aber auch das lässt sich abstellen) Allerdings hat sich dort auf der Mailingliste gerade jemand gemeldet, der den atmega169 implementieren will - dann dürfte es zum atmega329 nicht mehr so weit sein. Wobei der LCD-Controller dann jedoch noch ein Extra-Kapitel ist. Oder ... selbst Hand anlegen ... :-)
Hallo, danke für Deine Antwort. Ich muss mich korrigieren, ein Tippfehler: Der Arduino2009 hat natürlich einen ATmega328p und der wird unterstützt. Leider weiss ich nicht wie ich das machen soll. Auch ein ELF-File zu beschaffen wird nicht möglich sein. Ob eine Konvertierung irgendwie möglich ist weiss ich nicht. Selber Hand anlegen, bin ich zu doof für :) nochmal sorry, für den Fehler oben Gruß wally
Ich kam auf die Idee ein HEX-file zu laden asl ich im simavr wiki folgende Zeilen fand: http://gitorious.org/simavr/pages/GetStarted Run Your AVR Firmware ./simavr/run_avr firmware.afx or ./simavr/run_avr -m atmega88 - f 8000000 firmware.hex e.g. ./simavr/run_avr ./tests/atmega88_example.axf versuche ich dies: > ./simavr/run_avr -m atmega328p -f 8000000 ./arduino328p.hex Loaded 1 section of ihex Load HEX flash 00000000, 924 Starting atmega328 - flashend 7fff ramend 08ff e2end 03ff atmega328 init CORE: *** Invalid read address PC=0368 SP=08ff O=0895 Address 0900 out of ram (08ff) avr_sadly_crashed avr_gdb_init listening on port 1234 CORE: *** Invalid read address PC=0368 SP=0900 O=0895 Address 0901 out of ram (08ff) avr_sadly_crashed ? :) Gruß wally
Hi, > Der Arduino2009 hat natürlich einen ATmega328p und der wird unterstützt. Stimmt, den unterstützt simulavr seit der Version 1.0 tatsächlich, eine Hürde weniger. > Leider weiss ich nicht wie ich das machen soll. Auch ein elf-File zu > beschaffen wird nicht möglich sein. Ob eine Konvertierung irgendwie Ist das ein selbst erzeugtes hex? Dann wird es in der Regel auch ein elf-File geben, weil der Linker immer nur ein elf-File ausspuckt und das hex erst danach (und aus dem elf-File) erzeugt wird. (in jedem Fall ist das bei der gcc-Toolchain so bzw. möglich) Out of the box kann simulavr hex-Files nicht laden, eventuell etwas für die ToDo-Liste, aber da (siehe oben) beim Entwickler i.d.R. immer ein elf-File vorliegt, nichts, das hohe Prio geniesst. Der andere Weg ist natürlich, eines der beiden möglichen Script-Interfaces zu nutzen, das setzt dann aber eben doch gewisse Programmierarbeit voraus. Schönen Tag noch, Thomas
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.