debugWIRE ist ein serielles Kommunikationsprotokoll, das vom Prozessorhersteller Atmel entwickelt wurde. Es wird für die Programmierung und Fehlersuche bei Atmel AVR Microcontrollern eingesetzt.

Protokoll

Bearbeiten

Das proprietäre debugWIRE-Protokoll ist als einfache Alternative zu JTAG gedacht und wird bei Prozessoren mit begrenzten Ressourcen – speziell wenigen Anschlusspins – eingesetzt; die meisten modernen 8-bit-Prozessoren von AVR unterstützen das Protokoll. debugWIRE erlaubt vollen Lese- und Schreibzugriff auf den Speicher und die Überwachung des Programmflusses. Dabei können nur die Aktionen durchgeführt werden, die auch bei normalem Programmablauf möglich sind. Breakpoints werden durch Einfügen eines Break-Opcodes (0x9598)[1] gesetzt, dies erfolgt durch jeweilige Neuprogrammierung des Flash-Speichers, der jedoch nur eine begrenzte Zahl von Schreibzyklen zulässt (garantiert 10000)[2].

Programmiergeräte

Bearbeiten

debugWIRE wird von allen aktuellen Atmel-Debuggern unterstützt, wie z. B. Atmel-ICE, JTAGICE mkII, JTAGICE3 und AVR Dragon.[3]

Protokoll-Spezifikation

Bearbeiten

debugWIRE kann durch Programmieren des Fuse-Bits DWEN (debugWIRE enable) aktiviert werden, das sich im „High-Fuse-Byte“ befindet. Danach ist die /RESET-Funktion nicht mehr verfügbar und die Programmierung über ISP ist nicht mehr möglich. Die Programmierung der Fuse-Bits kann nicht über debugWIRE erfolgen, dazu muss die debugWIRE-Funktion durch ein Kommando temporär abgeschaltet werden, um mit dem Debugger erneut per ISP zugreifen zu können. Dies erfolgt bei Verwendung des Entwicklungssystems Atmel-Studio transparent für den Anwender.[4] debugWIRE benutzt serielle Kommunikation über eine Ein-Draht-Leitung mit Open-Drain-Ankopplung. Die Standard-Taktrate ist 1/128 des Prozessortaktes. Eingeleitet wird die Kommunikation durch Senden des Break-Zustandes (alle Bits 0), als Antwort sendet der zu testende Prozessor das Byte 0x55, das aus abwechselnd Null- und Eins-Pegeln besteht. Dies erlaubt dem Debugger eine einfache Identifizierung der Taktrate.[5][6]

Einzelnachweise

Bearbeiten
  1. AVR Assembler Instructions
  2. ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf
  3. debugWIRE-Interface des AVR Dragon
  4. debugWIRE-Artikel
  5. The debugWIRE protocol (Englisch)
  6. Simple stand-alone debugWIRE debugger (open source)
Bearbeiten