AVR-Programme debuggen, Teil 2

Compiler entfernen zur Ressourcenschonung Überflüssiges, was Fehler verursachen kann. Debugger identifizieren diese durch Einblick in den Assembler-Code.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, Shutterstock.com/ KatePilko

(Bild: Shutterstock.com/ KatePilko)

Lesezeit: 24 Min.
Von
  • Florian Schäffer
Inhaltsverzeichnis

Wir haben bereits beschrieben, wie das Debugging eines ATtiny-Chips mit dem MPLAB SNAP über die UPDI-Schnittstelle funktioniert. Dieses Mal suchen wir einen Fehler auf einem Arduino UNO – genauer auf dem ATmega328. Als Debugging-Schnittstelle kommt debugWIRE zum Einsatz, das genau wie UPDI nur eine Datenleitung benötigt.

Das Beispiel, das wir in diesem Artikel debuggen, sieht auf den ersten Blick trivial aus, hat es aber, was die Fehlersuche angeht, in sich und erfordert einen sehr tiefen Blick ins System und sogar in die Assembler-Programmierung. Aber keine Sorge: Auch das lässt sich verstehen; wir begleiten Sie Schritt für Schritt.

Kurzinfo
  • ATmega328 auf Arduino UNO debuggen
  • ISP und debugWIRE mit dem MPLAB Snap verwenden
  • Fehler im Code mit Assembler finden

Checkliste

Zeitaufwand: 2 Stunden

Kosten: 20 Euro (zzgl. Kosten aus dem vorherigen Artikel)

Mehr zum Thema

Material

  • Arduino UNO mit ATmega328
  • Breadboard mit Zubehör
  • Taster
  • LED, rot
  • Widerstand, 220 Ω

Werkzeug

  • MPLAB Snap In-Circuit Debugger/Programmer
  • Lötkolben
  • Seitenschneider, Cutter, Dremel o. Ä.

Im Quellcode, den Sie über das GitHub-Repository herunterladen können, finden Sie ausführliche Kommentare, die Ihnen beim Verständnis helfen werden, wenn Sie parallel dazu das Datenblatt des Mikrocontrollers studieren. Für das Debugging-Beispiel ist es aber nicht notwendig, dass sie alle Anweisungen im Detail verstehen.

Das war die Leseprobe unseres heise-Plus-Artikels "AVR-Programme debuggen, Teil 2". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.