Forum: Mikrocontroller und Digitale Elektronik Atmel AVR JTAGICE3 Problem


von Dennis H. (hoh)


Lesenswert?

Host:
Macbook Pro OSX 10.7.3
VirtualBox 4.1.10
Gast:
WinXP PRO SP3
Atmel AVRStudio 5.1

Problem:
Der JTAGICE3 wird erkannt, korrekt in die VM eingebunden, es kann mit 
dem Adapter geflachst werde, Fuses lesen & setzten, alles ohne Fehler!

DEBUG-Mode geht nicht! Die LED am JTAGICE3 leuchtet nur einmal kurz auf, 
( normal im DEBUG-Mode ist blinken! ) und es tut sich nichts! Im 
AVRStudio wird "Running" angezeigt, keine ERRORs! Stoppe ich nun den 
DEBUG-Mode, kommt ein "USB Timeout waiting for reset device"

Jemand eine Idee??

von Chris (Gast)


Lesenswert?

Welches Protokoll funktioniert denn nicht? Debugwire oder JTAG bzw. 
welcher µC ist es?
Da Du flashen kannst gibt es eigentlich keinen Grund warum debuggen 
nicht funktionieren sollte. Evtl hast Du gar kein Softwareproblem.

von Dennis H. (hoh)


Lesenswert?

Protokoll: JTAG

Tool: JTAGICE3 FW: 1.22

Output: (DEBUG-Mode)
18:10:16: [ERROR] Already resumed or unable to resume., ModuleName: TCF 
(TCF command: RunControl:resume failed.)
18:10:16: [WARNING] Could not resume execution
# Already resumed or unable to resume.

ATmega1284P-PU mit 20MHz
Fuses: Ex: 0xFE high: 0x19 low: 0xEF

Die "poplige" main:
1
int main(void)
2
{
3
int i;
4
    while(1)
5
    {
6
       i++;
7
    }
8
}

Kann man die AVRStudio Settings irgendwie komplett zurück setzten! Habe 
bemerkt, dass AVRStudio 5.1, Settings vom AVRStudio 5.0 übernommen hat.

Mir ist aufgefallen, wenn ich über "Tools/AVR Programming" die 
JTAG-Clock auf 2 MHz setzte, ist der Output "OK"!

Frage ich die Clock erneut ab, steht sie aber wieder auf 1 MHz.

Das ganz auf einem HP nc8430 AVR-Studio 5.1, Win7 native, geht ohne 
Probleme...

von R. Reusch (Gast)


Lesenswert?

Ich hatte ein sehr ähnliches Problem mit dem JTAGICE3. Nach der 
Anpassung der Übertragungsgeschwindigkeit hat zwar das Programmieren 
eines ATXMEGA32A4U geklappt, nicht jedoch das Debugging. Nach einem 
Update auf Firmware 1.34 klappte auch das. Bei diesem Controller heißt 
die Schnittstelle zwar "PDI", aber vielleicht hilft es auch in diesem 
Fall?

von Dennis H. (hoh)


Lesenswert?

Ok, nachdem ich die letzten 5h damit verbracht habe, meine VM aus der 
VirtualBox in die VMware umzusetzten, ein erstes Ergebnis!
Scheint ein Problem mit der VirtualBox zu sein.

Es geht...
Bis auf die JTAG Clock!

Die FW 1.34 ist mir nicht bekannt! AVR Studio 5.1 liefert nur 1.22.
Ist die 1.34 in der Beta AVRStudio 6 dabei?

Habe beim debuggen meines Testprogs, siehe oben, jedoch in der Watchlist 
ein Problem!

i optimized away ERROR, auch das setzten von Breakpoints geht nicht.

Auf der Native-Maschine geht das gleiche Projekt ohne murren!

von Dennis H. (hoh)


Lesenswert?

Hmm, was soll ich sagen! Aus, mir durchaus einleuchtenden Gründen, ist 
es nicht möglich, mit -O1 compilierten Code, zu debuggen.
"optimized away" sagt schon alles...
Der Sourcecode wurde einfach wegoptimiert, daher auch keine Bp´s 
möglich!

Wobei ich wieder zu einer meiner früheren Fragen komme:
Wie kann man die Setting und Switches des AVR Studios / Compilers zurück 
setzten??

Nach nun mehr 6,5h erfolgreicher Problemlösung melde ich mich hiermit 
ab... Gute Nacht!

von Uli (Gast)


Lesenswert?

-O1 ist schon bei Lauterbach ein Problem... Nicht darüber nachdenken und 
die Nacht genießen!

von R. Reusch (Gast)


Lesenswert?

Die Firmware V1.34 wird bereits beim AVR Studio 5.1 als Update 
angeboten.

von Filip West (Gast)


Lesenswert?

Hello, This commes in English as my German is so bad.

I have the exact same problem.

 Host:
 SL6 linux 2.6.32-131.21.1.el6.i686
 VirtualBox 4.1.8
 Guest:
 Win7
 Atmel AVRStudio 05.01


 Tool: JTAGICE3 FW: 1.22


I can transfer download / upload and set flags but,
Trying to use debug wire on a atmega168, result
   # Already resumed or unable to resume

/ Filip West

von Hans W. (hans_wurst)


Lesenswert?

Hallo,

wenn du die Optimierung für den Compiler lassen möchtest, füge doch 
einfach ein paar Zeilen/Bedingungen mehr ein. Der Compiler wird dir die 
while-Schleife sonst immer wieder weg-optimieren und du bist sofort 
wieder aus der main draußen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ein simples
1
__asm("nop");

in der Schleife genügt.  Da kann man auch problemlos einen Breakpoint
drauf setzen.  `i' als `volatile' deklarieren hilft auch, dann wird
der Compiler es wirklich hochzählen lassen.

Debugger an komplett degenerierten Beispielen testen zu wollen, ist
meist ein sinnloses Unterfangen.  Die Compiler bemerken, dass das
Beispiel degeneriert ist, und produzieren (entsprechend ihrer
Aufgabe) optimalen Code: also (fast) keinen.

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
Noch kein Account? Hier anmelden.