debugWIRE
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)<ref>AVR Assembler Instructions</ref> gesetzt, dies erfolgt durch jeweilige Neuprogrammierung des Flash-Speichers, der jedoch nur eine begrenzte Zahl von Schreibzyklen zulässt (garantiert 10000)<ref>ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf </ref>.
Programmiergeräte[Bearbeiten]
debugWIRE wird von allen aktuellen Atmel-Debuggern unterstützt, wie z. B. Atmel-ICE, JTAGICE mkII, JTAGICE3 und AVR Dragon.<ref>debugWIRE-Interface des AVR Dragon</ref>
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.<ref>debugWIRE-Artikel</ref> 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.<ref>The debugWIRE protocol (Englisch)</ref><ref>Simple stand-alone debugWIRE debugger (open source)</ref>
Einzelnachweise[Bearbeiten]
<references />