Was debuggen ist, wurde ja schon erläutert. Vielleicht noch ein paar Worte zu den verschiedenen Debugging-Techniken (von primitiv bis fortgeschritten):
a) Statuscodes via LED ausgeben. Lässt nur sehr begrenzte Rückschlüsse über das was im µC passiert zu. Vorteil: Braucht wenig Zusatzhardware.
b) Statusinfos über RS232 (oder andere Schnittstellen): Vorteil: Kann sehr detailreich sein, ermöglicht recht weitreichende Einblicke in den Programmfluss. Nachteil: Erfordert den Einbau entsprechender Ausgabefunktionen, beeinflusst den Programmablauf und kann insbesondere bei zeitkritischen Bereichen das Programm verfälschen!
c) Simulation: Die Vorstufe zum On-Chip Debugging. Ermöglicht eine umfangreiche Untersuchung dessen, was dein Programm eigentlich so treibt, ohne es modifizieren zu müssen. Geht aber spätestens dann schief, wenn externe Komponenten einen Einfluss auf dein Programm haben.
d) On-Chip Debugging: Sieh deinem AVR beim Arbeiten zu, live und in Farbe. Stellt die mächtigste Debugging-Technik dar, da sie auch externe Schaltungsbestandteile mit einbezieht. Erfordert Debugging-fähige Mikrocontroller und einen entsprechenden Hardwaredebugger wie den AVR Dragon oder JTAG ICE. Scheitert nur wenn es darum geht, Timing-kritische Vorgänge mit externen Bausteinen nachzuverfolgen, da beim Anhalten des Programmes im Chip natürlich jegliches Timing kaputt geht.
Ergänzend können dann noch (Speicher-)Oszilloskope und Logic-Analyzer eingesetzt werden, um insbesondere kommunikative Aspekte zu untersuchen, speziell da wo On-Chip-Debugging gerade nicht mehr funktioniert.
mfG
Markus
Lesezeichen