Forum: Mikrocontroller und Digitale Elektronik AVR Studio 5 AVR Dragon STK600 Debugging


von Harald B. (haraldb)


Lesenswert?

Hallo, ich benötige mal einen Rat zu folgendem Sachverhalt.
(ist mein erster kontakt mit AVR Debugging)
Installierte Software AVR Studio 5 Beta2
Hardware AVR Dragon (neu), STK600 mit ATMega2560(neu)
STK600 mit eigener Stromversorgung, Dragon an USB Hub mit Netzteil, JTAG 
Verbindung über Dragonlair(Verbindungskabel Länge 2x 8cm), Externe Clock 
von STK600 (1MHz).
Fuses, ID lesen geht. Hex Datei laden und löschen geht.
OCDEN true, JTAGEN true, SPIEN true, WDTON false, EESAVE true, CKDIV8 
true,
SUT_SKSEL EXTCLK_6CK_65MS, LOCKBits alle NO_LOCK.
An der JTAG Clock Leitung messe ich eine Frequenz von ca. 4,2KHz, egal 
wie der Takt auf dem Board eingestellt ist.
1. Frage ist das mit der gemessenen Frequenz so richtig, da ich keine 
Einstellmöglichkeit für dei JTAG Frequenz finde?
Ich habe nun ein Leeres GCC Projekt erstellt für ATMega2560 und AVR 
Dragon und folgenden Code eingefügt:
#include <avr/io.h>
int main(void)
{
DDRB = 0xFF;
while (1)
{
PORTB = 0x1F;
PORTB = 0xFF; //<-- hier habe ich einen Haltepunkt gesetzt
}}
So nun war ich der Meinung ich könnte auf Debuggen Starten drücken, an 
meinem Haltepunkt wird gestoppt und ich kann mir die Ports usw. 
anschauen. So kenne ich das aus meiner C# Programmierung.
Ist diese Hoffnung grundsätzlich falsch?
Muß ich noch weitere Einstellungen machen? (laut Anleitung in AVR Studio 
5 nicht, aber vielleicht übersehe ich ja etwas grundsätzliches, was 
keiner erwähnung bedarf)
Wenn ich nun Debug Start drücke, erscheint in der Ausgabe am Ende:

11:42:58.328: [ERROR] TCF command: StackTrace:getChildren failed: 
Code:3 ,Service:StackTrace ,Message from peer:readMemory failed:
An unknown emulator error occured.
# JtagIceMkiiProtocol::assertResponse(): readMemory failed:
# An unknown emulator error occured.
# JtagIceMkiiProtocol::assertResponse(): go failed:
# An unknown emulator error occured.
# go failed:
# An unknown emulator error occured.

In der Statusleiste steht running aber ansonsten passiert nichts.
Wenn ich wieder Stopp drücke :
11:47:36.734: [ERROR] TCF command: Processes:terminate failed:  Code:1 
,Service:Processes ,Message from peer:Failed to execute command with ID 
0x14.
Unexpected sequence number: got 0x001c instead of 0x001d.
11:47:36.734: [ERROR] Failed to terminate the session.
# Failed to execute command with ID 0x14.
# Unexpected sequence number: got 0x001c instead of 0x001d.
# Failed to execute command with ID 0x14.
# Unexpected sequence number: got 0x001c instead of 0x001d.

Vielleicht hat ja sogar jemand hier die gleiche Soft- und Hardware und 
könnte mir bestätigen, das es gehen müßte.Habe jetz schon über eine 
Woche gegoogelt und eigentlich nichts gegenteiliges gefunden.
für jede Hilfe vielen Dank

von Claus (Gast)


Lesenswert?

ich kämpfe mit ähnlichen Problemen - das ist keine Hilfe aber vielleicht 
ein Trost;
Meine Konfiguration besteht aus einem ATmega 169 board (butterfly) und 
einem KEE JTAGICE mkii.
Die genannten Funktionen (Programm laden, Fuses setzen, Signatur lesen) 
funktionieren einwandfrei. Beim Start des Debuggers kommt aber die 
Fehlermeldung :
TCF command: Processes:launch failed:  Code:1 ,Service: ,Message from 
peer:Unexpected signature 0x001e9405 (expected 0x001e9411)
Keine Ahnung was das bedeutet; es keimt allerdings der Vardacht, dass 
AVRStudio5 noch nicht so ganz stabil ist.

von Claus (Gast)


Lesenswert?

ich kämpfe mit ähnlichen Problemen - das ist keine Hilfe aber vielleicht 
ein Trost;
Meine Konfiguration besteht aus einem ATmega 169 board (butterfly) und 
einem KEE JTAGICE mkii.
Die genannten Funktionen (Programm laden, Fuses setzen, Signatur lesen) 
funktionieren einwandfrei. Beim Start des Debuggers kommt aber die 
Fehlermeldung :
TCF command: Processes:launch failed:  Code:1 ,Service: ,Message from 
peer:Unexpected signature 0x001e9405 (expected 0x001e9411)
Keine Ahnung was das bedeutet; es keimt allerdings der Verdacht, dass 
AVRStudio5 noch nicht so ganz stabil ist.

Nachtrag:
Zwei Dinge haben mein PROBLEM GELÖST:
a) der Prozessor Typ muss ganz genau angegeben werden; in meinem Fall 
169PA (irrtümlich 169A angegeben); danach verschwanden o.g. ominöse 
Fehlermeldungen;
b) die JTAG Frequenz darf nicht grösser sein als 1/4 der Taktfrequenz 
des Systems; man erreicht die dazugehörige Einstellung über das Menue 
project -> <project name> properties -> Tab "debugging"; hier lässt sich 
über eine Schiebregler bequem die Frequenz einstellen; .... und funzt !

von Frank K. (fchk)


Lesenswert?

Harald Becker schrieb:
> Hallo, ich benötige mal einen Rat zu folgendem Sachverhalt.
> (ist mein erster kontakt mit AVR Debugging)
> Installierte Software AVR Studio 5 Beta2

Du weißt, was Beta heißt? "Vorsicht Baustelle. Kann funktionieren, muss 
aber nicht." Nimm erstmal Studio 4.18, bringe das zum Laufen, und dann 
kannst Du ja bei Studio 5 weiter probieren, wenn Du nicht aufs 
Christkind warten willst.

fchk

von Harald B. (haraldb)


Lesenswert?

@Frank K.
ich weiß das dies eine Beta Version ist, aber sie wäre gerade für mich, 
der sonst mit VS 2010 und C# programmiert eine gute Brücke zur AVR Welt. 
In Studio 4.18 funktioniert das Debuggen, aber da es ja auch in Studio 5 
funktionieren sollte, siehe auch Beitrag von Claus, würde ich halt 
lieber direkt mit der neuen IDE arbeiten (übersichtlicher für mich).
@Claus
schon mal schön zu hören, das es gehen müßte, wobei Du leider nicht mit 
der gleichen Hardware arbeitest. z.B. der Regler zur Einstellung der 
JTAG Frequenz (den habe ich auch in der Beschreibung zu Studio5 gesehen, 
da wird das ja anhand von AVR !ONE gemacht) ist bei mir mit AVR Dragon 
nicht vorhanden!?
Hast Du irgend etwas an den Toolchains oder so geändert? Welche 
Toolchains  benutzt Du, die mitgelieferten, oder...?
Ich nehme an, dass Studio 4 irgendetwas automatisch macht, was Studio 5 
nicht macht. Bei Studio 4 habe ich nichts geändert und es lief.
Zwischnzeitlich habe ich festgestellt, dass die Fuses sich bei meinen 
Tests mit Studio 5 verstellten. Ich nehme an dass dies an meiner 
benutzung des PortB lag, da hier auch die SPI Schnittstelle sitzt. Ist 
doch richtig, dass JTAG über die SPI Schnittstelle funktioniert? Konnte 
da im Datenblatt nichts direktes zu finden. Ist es weitergehend nicht 
möglich ein Programm, dass SPI benutzt, wenn ich z.B. den AT45DB041B 
4Mbit DataFlash auf dem STK600 nutzen will, zu Debuggen?

von Claus (Gast)


Lesenswert?

nein- keine Änderung an den Toolchains, nur die mitgelieferten werden 
verwendet.
Dass du die Einstellung für die JTAG Frequenz nicht siehst, ist äußerst 
merkwürdig. Hast du SP3 installiert ?
Die Fuses verstellen sich in der Tat. OCDEN wird von beim Debuggen 
automatisch geschaltet; JTAGEN muss man selbst setzen;
Den zweiten Teil deiner Fragen kann ich leider nicht beantworten;

von Harald B. (haraldb)


Lesenswert?

Hallo Claus, was meinst Du mit SP3? Ich rede von der AVR Studio 5 Beta 2 
Version, mit der ich Schwierigkeiten habe. Nicht das wir uns da 
mißvertehen.

von Hannes J. (pnuebergang)


Lesenswert?

Nimm Studio 4 oder leb halt mit dem Visual Dreckszeug.

von Claus (Gast)


Lesenswert?

ja, du hast recht; das SP3 gibt es nur bei 4.18; bei AVRStudio 5 ist man 
vorerst noch bei Beta 2;

von Claus (Gast)


Lesenswert?

noch ein Nachtrag:
das Window mit dem JTAG Clock Schiebregler erscheint bei mir sofort 
nachdem ich AVRStudio 5 geöffnet habe und ein Projekt ausgewählt habe.
Danach muss nur noch über das seitliche Auswahlmenue (Build / Build 
Events  Toolchain  Device / Debugging) das Debugging ausgewählt werden 
- et voila.
Das geht übrigens schon ohne angeschlossenen JTAGICE.
Ergo - solltest du das nicht sehen, ist irgendwas mit deiner AVRStudio 5 
Installation oberfaul.

von Harald B. (haraldb)


Lesenswert?

Hallo, ich habe mich jetzt nocheinmal mit meinem Problem beschäftigt und 
folgende Lösung gefunden.
In der Projektdatei " Test.avrgccproj "(mit Editor öffnen) im 
Projektordner war unter <JtagDbgClock>0</JtagDbgClock> die Fequenz nicht 
eingetragen, die habe ich auf 1000000 geändet. Bei mir mit AVR Dragon 
erscheint der Schieberegler für die Frequenz nicht!
Ausserdem habe ich den <port>4711</port> fest vorgegeben auf 4711. Das 
ist der Standardport für das Programm avrdbg.exe in 
C:\Programme\Atmel\AVR Studio 5.0\avrdbg , welches ich vor dem starten 
von AVR Studio 5 direkt starte. In AVR Studio 5 muß man noch unter 
Extras -> Optionen -> Debugger den Debug Port fest vorgeben auf 4711, 
sodaß sich das Studio
direkt mit dem schon gestarteten avrdbg.exe verbindet, dadurch 
verschwindet der AVR Dragon auch nicht mehr im Studio.
Unter Taskmanager Prozesse sollte (darf) nur einmal avrdbg.exe 
auftauchen.
Funktioniert bis jetzt einwandfrei und ich bin froh mit der neuen IDE 
arbeiten zu können. Arbeitserleichterungen sind meiner Meinung nach 
nichts schlechtes.
Auch nochmal vielen Dank an Claus. Der Hinweis auf die Frequenz hat mich 
auf die richtige Spur gebracht.
Natürlich ist das ein Fehler der Betaversion, deshalb heißt sie ja auch 
Beta.

@Hannes Jaeger
Dein Kommentar über "Visual Dreckszeug" zeigt meiner Meinung nach 
eindeutig, dass Du dich wohl noch nie ernsthaft mit den 
Entwicklungstools von MS beschäftigt geschweige denn, damit gearbeitet 
hast, ansonsten würdest Du wissen, daß bei der proffesionellen Arbeit 
mit z.B. Visual Studio 2010 vielleicht 1% mit dem Designer gearbeitet 
wird und dann auch nur damit lästige Oberflächengestaltung entfällt. Bei 
Projekten mit über 100 Dateien und zig Tausend Zeilen Code, bin ich froh 
für jede Hilfe, die mir das Schreiben von langweiligem Code erspart, 
sodaß ich mich um die interesanten Sachen kümmern kann.
Aber natürlich könnte man das alles auch in einem Text-Editor schreiben, 
aber will man das?

von Harald B. (haraldb)


Lesenswert?

nur zur Info.
seit der AVR Studio 5 Release Version funktioniert die genannte 
Kombination von Geräten ohne irgendetwas zu ändern...

von Georg M. (georgmeyer)


Lesenswert?

Kann ich so leider nicht bestätigen!

Stundenlang funktioniert Debugging nicht!

Target: AT90CAN128

Fehler:


10:51:49.005: [ERROR] TCF command: StackTrace:getChildren failed: 
Code:3 ,Service:StackTrace ,Message from peer:Failed to execute command 
with ID 0x07.
Unexpected sequence number: got 0x010d instead of 0x010e.
# Failed to execute command with ID 0x07.
# Unexpected sequence number: got 0x010d instead of 0x010e.

Lösung:

Um debuggen starten zu können:

  Fuses müssen gesetzt sein für Jatag und On chip debug

  Project properties:
    Build
      Configurations -> Debug
    Build Events
      Configurations -> Debug
    Toolchain
      Configurations -> Debug
    Memory
      Configurations -> Debug
    Debugging
      Jatag Clock -> 1/4 des System Clocks, besser noch: im KHz Bereich.


Jetzt funktioniert es wieder. Vorher kam er gar nicht zum  Debuggen oder 
flog raus.

Das komische: selbst nach Abspeichern der Einstellungen, sind diese z.T. 
nach einem Neustart des AVR S5 wieder weg... Ferner, es funktionierte 
Wochenlang zum Teil Problemlos...

Hoffe anderen damit helfen zu können...

MfG

von Georg M. (georgmeyer)


Angehängte Dateien:

Lesenswert?

OK, Habs nur richtig gefunden.

Es liegt am Taktsignal des Jatag-Verbinders bei mir...

Benutze den Dragon. Wenn man über 500 kHz geht, erkennt der Prozessor 
den Takt nicht mehr richtig und die Daten werden nicht mehr korrekt 
übertragen.



Deswegen 500kHz maximal!

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.