Ungenutzte Bits in einem Programmzähler sollten eigentlich Null sein. In der Praxis sind sie das jedoch manchmal nicht. Da diese Bits ungenutzt sind, spielt ihr Wert eigentlich keine Rolle – solange niemand von außen, etwa ein Debugger, sie ausliest. Kann das bei AVR Mikrocontrollern zu Problemen führen?
Weiter lesenSchlagwort: Debuggen
AVR TQFP-100/64 Test- und Programmier-Sockel
Wenn du mit ATmegas in TQFP-Gehäusen arbeitest, sind Boards mit Test-Sockeln, wie sie auf dem Bild oben zu sehen sind, ein wirklich unersetzliches Werkzeug.
Weiter lesen
Die umfassende Liste von AVR-Debuggern
Hast du dich schon mal gefragt, ob du den AVR-Debugger, den du in Opas Ersatzteilkiste gefunden hast, für dein neuestes Hardware-Projekt nutzen kannst? Hier kommt die umfassende Liste der AVR-Debugger, die genau solche Fragen beantwortet.
Weiter lesenAs soon as we started programming, we found to our surprise that it wasn’t as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
(Maurice Wilkes, 1949, Konstrukteur einer der ersten speicherprogrammierbaren Computer)
System View Descriptions von AVR MCUs
Was ist eine System View Description (SVD)? Wofür kann sie verwendet werden? Und gibt es eine Verbindung zu AVR-Mikrocontrollern?
Weiter lesen
Stop-and-Go
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 lesen
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
Volatilität, Race-Conditions und Heisenbugs
Was ist der Zweck des C++-Qualifizierers volatile, was hat er mit Race-Conditions zu tun und was sind Heisenbugs?
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
Spontane MCU-Neustarts: Warum passieren sie?
AVR MCUs scheinen manchmal neu zu starten, ohne dass du den RESET-Knopf gedrückt hast. Ist das ein Zeichen von Unverwüstlichkeit oder von drohender Gefahr? Und wie findet man die Ursache?
Weiter lesen