Hallo zusammen,
es gibt ja schon einige uralte Threads dazu, die haben mir aber nicht wirklich weiter geholfen.
Meine Tools
1 |
|
2 |
|
3 |
|
Ich bin mit Linux unterwegs.
Ich nutze eine AVR JTAGmkII mit dem Controller AT90USB162 (Nostalgie pur :-) ) Das Programm ist in Assembler geschrieben und wird mit GNU-GCC (Preprozessor) und GNU-AS erstellt. Ich hätte auch noch einen AVR Dragon - falls das grundsätzlich etwas ändert.
Ich kann mit
- avrdude das Binary auf den Controller flashen und die DebugWire Fuse programmieren
- avarice eine Debug-Session starten
- avr-gdb durch das Programm steppen und breakpoints setzen
Ich habe mehrere Probleme:
- Breakpoints werden ignoriert
- Continue-Befehl stoppt nicht mehr, außer durch CTRL-C
- Advance-Befehl stoppt nicht mehr, außer durch CTRL-C
Das sind die Kommandozeilen die ich nutze:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
Laut GDB sind folgende breakpoints gesetzt
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
Wie man sehen kann, wird bei main nicht angehalten. Außerdem landet der GDB beim Schrittweise durchgehen immer wieder beim ISR-Handler von SPI. Mit dem nächsten Schritt dann wieder ganz normal in der nächsten Programmzeile. Liegt vermutlich an den aktivierten Interrupts, wobei nur die USB-Interrupts eingeschaltet sind. Den Hardware-Watchdog habe ich auch schon ausgeschaltet.
Der Breakpoint wird wohl auch durch AVaRice gesetzt:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
Ich habe irgendwo gelesen, dass DebugWire gar keine Hardware-Breakpoints unterstützt sondern diese nur bei JTAG verfügbar sind - Ist das korrekt?
Das Log des AVaRice habe ich angehangen. Vielleicht weiß jemand ja weiter. Den AI-Overlord habe ich auch schon konsultiert, die Ergebnisse waren aber nur mit äußerster Vorsicht zu genießen
Und falls einer fragt: Ja, ich musste den Controller schon mit HVPP "retten", verdammtes RSTDISBL-Fuse ...
Vielleicht hat ja einer noch eine Idee dazu
Danke und Gruß