Eine typische Debugging-Aktivität ist das Setzen von Haltepunkten (engl. Breakpoints) und das anschließende Durchlaufen des Programms von Haltepunkt zu Haltepunkt, wobei der interne Zustand des Programms an jedem Haltepunkt überprüft wird. Das hört sich zwar einfach an, ist in der Umsetzung dann aber doch komplizierter als man glaubt. In diesem Blogbeitrag werden wir einen Blick in den Maschinenraum eines Debuggers werfen.
Weiter lesenSchlagwort: debugWIRE
Ein Schnäppchen für alle: SNAP
Microchip hat den Preis für ihren Hardware-Debugger SNAP von über 50 € auf unter 20 10 € gesenkt. Ich habe kürzlich das Python-Skript dw-gdbserver für diesen und andere Hardware-Debugger erstellt, so dass du SNAP jetzt in der Arduino IDE 2 zum Debuggen klassischer ATtinys und kleiner ATmegas verwenden kannst. Alles in allem ist dies eine erschwingliche und komfortable Debugging-Lösung für klassische AVRs.
Per Einzelschritt die Orientierung verlieren
Beim Embedded Debugging passiert es oft, dass man beim zeilenweisen Single-Stepping plötzlich in der Interrupt-Vektor-Tabelle landet. Ein weiteres Problem ist, dass einzelne Schritte manchmal Ewigkeiten dauern können. In diesem Blogbeitrag gehe ich auf beide Probleme ein, und zeige, welche Maßnahmen in einem Gdbserver diese Probleme verhindern können. Alles natürlich im Kontext von AVR MCUs.
Weiter lesen
Arduino IDE 2 trifft auf dw-link
Das Debuggen von klassischen AVRs in der Arduino IDE 2 ist endlich Realität geworden! Es hat eine Weile gedauert, diese Funktion zu implementieren, aber jetzt ist es nur noch ein Kinderspiel, das Debugging zu aktivieren und den Debugger zu benutzen.
Weiter lesen
Debugging 2.0
Was hält die Leute davon ab, einen Debugger zu benutzen? Nun, meistens sind es die anfänglichen Kosten für die Einrichtung der Debugging-Umgebung und das Erlernen des Umgangs mit dem Debugging-Tool. Ich hoffe, dass die nächste Version meines Hardware-Debugging-Tools dw-link, mit dem man klassische ATtinys und ATmegaX8s debuggen kann, diese Belastung etwas verringert, vor allem, weil man die dazugehörige Hardware jetzt bei Tindie kaufen kann.
Weiter lesen
Problemlösungen … mit superglobalen Variablen
Ein weiterer xkcd-Comic, der den Punkt trifft. Allerdings ist das mit meinem neuen Hardware-Debugger ja nun Vergangenheit 😎. Vor kurzem habe ich eines meiner elektronischen Geocaching-Gadgets debuggt und war positiv überrascht, wie einfach es war, die eigenen Fehler zu lokalisieren und die richtige Lösung zu finden.
Weiter lesen
Ein debugWIRE-Hardware-Debugger für weniger als 10 €
Ist es möglich, einen debugWIRE-Hardware-Debugger für weniger als 10 € zu bauen? Man kann, wenn man ein paar Kompromisse eingeht, ein bisschen lötet und Schrumpfschlauch erhitzt.
Weiter lesen
dw-probe: Die Hardware für den Hardware Debugger
dw-link kann ein Arduino-Board in einen Hardware-Debugger verwandeln und dw-probe verbindet es mit jedem Target-Chip.
Weiter lesen
Dies ist ein kleiner Schritt für einen Menschen, aber ein riesiger Sprung für einen Debugger: Single-Stepping und Interrupts
Man will nur einen einzelnen Schritt in einem Programm ausführen, aber der Debugger springt zu einem völlig unbekannten Bereich des Programms. Dies war in der Tat meine erste Erfahrung, als ich den MPLAB-X-Debugger von Microchip auf dem Blink-Programm ausprobierte habe. Fehler oder Feature?
Weiter lesen
dw-link: Ein neuer Hardware-Debugger für ATtinys und kleine ATmegas
Wie in einem früheren Blogbeitrag erwähnt, sind Hardware-Debugger die Königs-Klasse der eingebetteten Debugging-Werkzeuge. Bis heute gab es jedoch nur sehr wenige, relativ teure Tools für die debugWIRE-Schnittstelle, die von den klassischen ATtinys und einigen ATmega-MCUs verwendet wird.
Die gute Nachricht ist, dass man jetzt einen Arduino Uno, Nano oder Pro Mini in einen debugWIRE-Hardware-Debugger verwandeln kann, der mit avr-gdb, der AVR-Version des GNU-Projektdebuggers, kommunizieren kann.