Hi, wie sieht es denn eigentlich mit Debugging unter Linux aus? Bisher hab ich nur GDB gesehen und hab keine Ahnung wie der funktioniert. Gibts es etwas annähernd vergleichbares zb zum Source Level Debugging via DebugWire im AVR Studio unter Linux?
Du kannst den GDB via AVaRICE auf ein JTAG ICE oder einen AVR Dragon loslassen, damit kann er wahlweise JTAG oder debugWire benutzen. Der GDB ist auf jeden Fall völlig anders als AVR Studio. Er kann manche Dinge nicht, die AVR Studio kann, in anderen Dingen ist er dagegen haushoch überlegen (bspw. der Darstellung beliebiger C-Ausdrücke einschließlich typecasts usw.). Für die Bedienung gibt's mehr als ein mögliches grafisches Frontend, wobei sich DDD offenbar allgemeiner Beliebtheit erfreut, oder aber du benutzt die Integration des GDB in den Editor deiner Wahl, der damit zusammen dann zu einer IDE wird.
ok, klingt schonmal gut das es geht. mal schauen ob ich das irgendwie hinkriege
DDD scheint allgemein beliebter zu sein als Insight. Dass DDD bei WinAVR nicht dabei ist, liegt insbesondere daran, dass es sich nicht unter/für Win32 bauen lässt. Anyway, bevor du irgendwann fragst: größter Schwachpunkt des AVR-GDB ist im Moment, dass er keine Methode hat, symbolisch auf IO-Register zuzugreifen. Ich suche hier noch Ideen, wie man ihm das über die Debuginformationen aus dem ioXXX.h mit rüberreichen kann. Das alte "info io_registers" ist nur für wenige AVRs überhaupt implementiert worden und ist meiner Meinung nach eher eine miese Krücke (man kann nur alle IO-Register auf einmal anzeigen), sodass ich es müßig finde, da weiter dran zu schrauben. Da man auf alle IO-Register über Speicheradressen zugreifen kann, sollte eigentlich im GDB alles vorhanden sein, was man dafür braucht, so man denn die symbolischen Informationen rüberbekommt. Derweil kann man sich einfach mit dem x-Kommando behelfen, das ja eine beliebige Speicherstelle anzeigen kann. Mein Kollege wickelt sich darum dann gern einen GDB-Makro für seine am häufigsten benötigten IO-Register. Außerdem: der AVR-GDB wurde noch nicht bisher für DWARF-2 angepasst. Bitte compiliere mit -gstabs statt -gdwarf-2. Ob -g ohne etwas DWARF-2 oder stabs erzeugt, ist eine Frage, wer den Compiler beim Bauen wie konfiguriert hat. WinAVR hat DWARF-2 als Voreinstellung, ich habe bei FreeBSD (wegen AVR-GDB's Möglichkeiten) stabs als Voreinstellung.
Juhu endlich mal jemand der sich damit auskennt. ;) thread kaper Wie arbeite ich eigentlich mit der toolchain wenn ich Assembler Programiere? Hab noch nicht mit C angefangen und wollte mal sehen ob ich mit avarice und gdb klarkomme bin aber kläglich gescheitert da ich schlich nicht kapiert hab was ich avarice und gdb vorsetzen soll (hex, obj, asm). -wiebel
Der Assembler kennt auch ein -gstabs, dann erzeugt er selbstständig line number debugging information. Debuginformationen zu deinen Variablen müsstest du allerdings selbst mitbringen.
Ich hatte nach einer Methode gesucht, wie ich möglichst komfortabel in DDD IO-Register ändern kann und bin bei meiner Recherche auf diesen Thread gestoßen. Ich habe jetzt eine Methode gefunden, die einigermaßen komfortabel ist (am Beispiel PORTA mit Adresse 0x3b): - Im Menü von DDD das Fenster 'Data/Displays' öffnen. - Den Knopf 'Display...' anklicken. - '*(char*)0x3b' eintippen und den Knopf 'Display' anklicken. - Im Fenster 'DDD: Displays' die Zeile mit '*(char*)0x3b' markieren und den Knopf 'Set' anklicken. - Im neuen Fenster 'DDD:Set Value' den neuen Wert eingeben. Mit 'Apply' wird er gesetzt. Das Fenster 'DDD: Displays' kann dann geschlossen werden und das Fenster 'DDD:Set Value' an eine passende Stelle am Bildschirm positioniert werden. Zum Testen kann man damit LEDs an- und ausschalten. Wenn man so mehrere Ports im Zugriff haben will, stört es natürlich, dass die Fenster keine sprechenden Namen haben, sondern nur die (dezimale!!!) Adresse. Aber damit kann man wohl leben.
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.