Wie funktioniert Debugger bei Mikrocontroller (AVR, PIC). Ist das nur eine Simulation im PC oder der Mikrocontroller macht dabei mit und liefert interne reale Werte. Wie ist dann mit Breakpoints.
> Wie funktioniert Debugger bei Mikrocontroller (AVR, PIC). Ist das nur > eine Simulation im PC... Wenn's eine Simulation wäre, würde es Simulator heissen :) > oder der Mikrocontroller macht dabei mit und liefert interne reale Werte. Er macht mit. Und die Werte sind vom µC. > Wie ist dann mit Breakpoints. Was soll damit sein? Wenn der Debugger merkt, dass der Programmcounter die Adresse des BP erreicht hat hält er den µC an. Ralf
Ralf schrieb: > Er macht mit. Und die Werte sind vom µC. Dann muss Mikrocontroller durch interner Aufbau dazu geeignet sein... Sind das alle Typen von Mikrocontroller dazu fähig? Wie läuft dann die Kommunikation Mikrocontroller<->PC (hardwaremäßig...) ?
Ralf schrieb: >> Wie ist dann mit Breakpoints. > Was soll damit sein? Wenn der Debugger merkt, dass der Programmcounter > die Adresse des BP erreicht hat hält er den µC an. Falls das ein Prozessor kann, nennt man das Hardware Breakpoint. Es gibt auch Softwarebreakpoints: Beim Anklicken eines Breakpoints wird der Flash des µCs neu geschrieben und an der entsprechenden Stelle ein BRK-Befehl (oder wie auch immer der Hersteller den nennt) eingefügt. Wird dann ähnlich wie ein Interrupt behandelt. In der "ISR" nimmt der Controller die Anfragen des PCs entgegen und sendet entsprechende Daten.
Ralf schrieb: > Wenn's eine Simulation wäre, würde es Simulator heissen :) Naja, streng genommen wäre das durchaus auch ein Debugger. Er kann halt eine Simulation oder eine Emulation als Backend haben, wobei die Emulation heutzutage eigentlich auch keine mehr ist, sondern eben ein Eingriff in den tatsächlichen Prozessor. (Vor 10+ Jahren waren Emulatoren noch so aufgebaut, dass der jeweilige Digitalteil in einem FPGA emuliert worden ist, bei dem man dann zusätzliche Eingriffsmöglichkeiten fürs Debuggen geschaffen hat. Ein Beispiel für so ein Gerät wäre das Atmel ICE-50.) skorpionx schrieb: > Wie läuft dann die > Kommunikation Mikrocontroller<->PC (hardwaremäßig...) ? Da kann man prinzipiell alles nehmen, über das man überhaupt kommunzieren kann. Uralt ist die Technologie, im Zielsystem ein sogenanntes Monitorprogramm laufen zu lassen, welches die Steuerung über das eigentliche Programm übernimmt. Mit dem Monitor kommuni- ziert man dann bspw. über eine UART. Sehr ähnlich funktioniert Atmels debugWIRE, nur das die Kommunikation über den /RESET-Pin als Eindraht-Bus abgewickelt wird. Recht gängig bei vielen Herstellern ist es, dass man Controller, die mit einer JTAG-Schnittstelle ausgerüstet sind (deren ursprünglicher Zweck die Möglichkeit zum Hardwaretest der verlöteten Leiterplatten ist) auch auf diesem Wege debuggen kann.
skorpionx schrieb: > Ralf schrieb: >> Er macht mit. Und die Werte sind vom µC. > > Dann muss Mikrocontroller durch interner Aufbau dazu geeignet sein... > Sind das alle Typen von Mikrocontroller dazu fähig? Wie läuft dann die > Kommunikation Mikrocontroller<->PC (hardwaremäßig...) ? Man sollte die Antwort für einen Anfänger nicht zu kompliziert schreiben, denn sonst weiß er nicht was er für sinnvolle Fragen in der Zukunft stellen soll. Das geht so: Mikrocontroller der hat ein paar Pins für die Debug-Schnittstelle (siehe Doku) die Pins + Reset + Stromversorgung werden verbunden an: JTAG-Adapter oder Programmieradapter oder z.B. bei Pic PICKIT-III Der Programmieradapter ist per USB mit dem PC verbunden bei PIC gibt es ein PC-Programm "MPLAB", dem muss man erst sagen welche Variante des Programmers man nutzt und schon kann die Software über USB über PICKIT-III über die paar Drähte eine Verbindung zum Mikrocontroller herstellen. Eine Debug-Schnittstelle im Mikrocontroller kann man sich so vorstellen, wie ein Käfer, der eine "Handbedienung" des Prozessors jederzeit zulässt.
Jörg Wunsch schrieb: > (Vor 10+ Jahren waren Emulatoren noch so aufgebaut, dass der > jeweilige Digitalteil in einem FPGA emuliert worden ist, bei dem > man dann zusätzliche Eingriffsmöglichkeiten fürs Debuggen geschaffen > hat. Ein Beispiel für so ein Gerät wäre das Atmel ICE-50.) Ein Hoch auf den Fortschritt! Ich erinnere mich noch mit Grauen den Hitex-C167-Emulator, wo ein hoher Turm von Adaptern auf den Chip obendrauf geschraubt wurde (Schraube wurde auf den µC geklebt). Eine halbe Umdrehung zu wenig und einer der 144 Kontakte hat nicht kontaktiert, eine halbe Umdrehung zu viel und die Schraube ist abgerissen... Hab ich das Ding gehaßt!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.