mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2468 Debuggen unter Eclipse mit OpenOCD und Amontec JTAGKey Tiny


Autor: Eric Schrön (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich habe folgenden Aufbau mit daran anschliessendem Problem:

Ich habe Eclipse installiert und möchte mit OpenOCD und einem den 
JTAGKey Tiny von Amontec meinen LPC2468 auf einem Embedded Artists Board 
im Flash debuggen. Geflasht bekomme ich ihn mit einem externen Programm.

Ich habe das OpenOCD installiert und wollte es konfigurieren. Dabei 
erschienen diese Meldungen

c:\Programme\openocd-r657\bin> openocd-ftd2xx -f lpc2xxx_jtagkey.cfg
Open On-Chip Debugger (2008-05-16 20:15) svn: 657
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk
Info:    options.c:50 configuration_output_handler(): jtag_speed: 3, 3
Info:    options.c:50 configuration_output_handler(): Open On-Chip 
Debugger (200
8-05-16 20:15) svn: 657
Info:    jtag.c:1376 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f 
(Manufa
cturer: 0x787, Part: 0xf1f0, Version: 0x4)
Warning: embeddedice.c:185 embeddedice_build_reg_cache(): EmbeddedICE 
version 7
detected, EmbeddedICE handling might be broken
Info:    jtag.c:1376 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f 
(Manufa
cturer: 0x787, Part: 0xf1f0, Version: 0x4)
Warning: jtag.c:1204 jtag_check_value(): value captured during scan 
didn't pass
the requested check: captured: 0x0f check_value: 0x01 check_mask: 0x0f
Warning: jtag.c:1164 jtag_read_buffer(): in_handler reported a failed 
check

Das Config-File dazu liegt im Anhang.

Was will mir das Programm damit sagen und was macht es??? Wie kann das 
behoben werden und wie erklären sich folgende Zeilen. Diese kommen, wenn 
ich unter Eclipse das OpenOCD aufrufe.

Open On-Chip Debugger (2008-05-16 20:15) svn: 657
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk
Info:    options.c:50 configuration_output_handler(): couldn't open 
script file openocd.cfg
Error:   jtag.c:1498 jtag_interface_init(): JTAG interface has to be 
specified, see "interface" command

Vielen Dank schon mal im voraus für eure Antworten
Eric

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal die Zeile auskommentieren:

gdb_memory_map enable

mit # vorne dran, vielleicht gehts dann richtig...

Autor: Eric Schrön (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat nicht funktioniert. Mittlerweile bekomme ich jede Menge 
Fehlemeldungen, die alle so aussehen:

Error:   jtag.c:1431 jtag_validate_chain(): Error validating JTAG scan 
chain, IR
 mismatch, scan returned 0x00

Ungefähr so 40 Stück, wenn ich die openocd exe aufrufe.

Was ist das nun wieder???

Eric

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal die OpenOCD Version r247.

Gibts in diesem Thread:
Beitrag "Probleme mit OpenOCD Phytec lpc2294"

Autor: Eric Schrön (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank schon mal für eure Antworten! Leider hat das alles nix 
gebracht. Ich bin blutiger Anfänger diesbezüglich und kann euch auch 
keine weiteren Infos geben.

Trotzdem: Bitte helft mir!!!

Eric

Autor: Eric Schrön (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay!

Neue Sachlage!

Ich habe das OCD im DOS-Fenster zum laufen bekommen. Er findet alle 
seine Files und alles is suppi!

Allerdings, wenn ich das unter Eclipse starten will, kommt immer wieder 
die Fehlermeldung:

Error:   configuration.c:122 parse_config_file(): couldn't open config 
file

Ich hab auch schon an den Pfad Einstellungen rum gespielt.

Wie geht das?

Autor: wolfhunters (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
normalerweise kannst du das Configfile folgendermaßen mit einbinden.
"ocd.exe" -f "configfile.cfg"

Bei mir sieht das konkret so aus:
openocd-ftd2xx.exe -f test.cfg

Wenn du das Configfile richtig geschrieben hast müßte sowas ähnliches 
wie
"Info:    openocd.c:93 main(): Open On-Chip Debugger (2007-09-05 09:00 
CEST)" erscheinen, je nach Version

Autor: wolfhunters (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab vergessen zu erwähnen, dass das Configfile bei mir im selben 
Ordner liegt, wie die OCD.exe

Autor: Eric Schrön (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@wolfhunters

Exakt so wie du habe ich es auch hinbekommen - im DOS-Fenster, wenn ich 
dich richtig verstanden habe!!!

Allerdings läuft die ganze Sache nicht unter Eclipse, so wie oben 
beschrieben! Warum???

Eric

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay!!!
Unterhalte ich mich eben bisschen mit mir selbst! Hab das OpenOCD jetzt 
auch unter eclipse zum laufen bekommen. Hatte vergessen die Working 
Directory bei "External Tools" einzugeben. Da muss man dann das 
Verzeichnis, wo die OpenOCD exe und das config File liegen eingeben.

So was blödes aber auch!!!

Eric

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und mal wieder funktioniert gar nix!!!!

Wollte selbes Projekt mit selben Einstellungen auf einem anderen 
Computer installieren und jetzt gibt es folgende Fehlermeldungen:

Error:   ft2232.c:1419 ft2232_init_ftd2xx(): unable to open ftdi device: 
2
Error:   ft2232.c:1434 ft2232_init_ftd2xx(): ListDevices: 2

Error:   ft2232.c:1436 ft2232_init_ftd2xx(): 0: Amontec JTAGkey B
Error:   ft2232.c:1436 ft2232_init_ftd2xx(): 1: x?
Error:   ft2232.c:1419 ft2232_init_ftd2xx(): unable to open ftdi device: 
2
Error:   ft2232.c:1434 ft2232_init_ftd2xx(): ListDevices: 2

Error:   ft2232.c:1436 ft2232_init_ftd2xx(): 0: Amontec JTAGkey B
Error:   ft2232.c:1436 ft2232_init_ftd2xx(): 1:
Info:    options.c:50 configuration_output_handler(): Open On-Chip 
Debugger (2008-06-19 19:00) svn: 717
Error:   ft2232.c:1419 ft2232_init_ftd2xx(): unable to open ftdi device: 
2
Error:   ft2232.c:1434 ft2232_init_ftd2xx(): ListDevices: 2

Error:   ft2232.c:1436 ft2232_init_ftd2xx(): 0: Amontec JTAGkey B
Error:   ft2232.c:1436 ft2232_init_ftd2xx(): 1: x?

Warum???

Bitte helft mir! Bin langsam am verzweifeln!

Eric

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, den Fehler hatte ich mal, als der Baustein im *.cfg anders hieß 
als am PC. In der Systemsteuerung musst du (glaube ich) "Amontec JTAGkey 
A" und "Amontec JTAGkey B" finden, wenn nicht, ist da schon irgendwas 
nicht in Ordnung. In der Datei ist der "Amontec JTAGkey A" 
voreingestellt.
Ich glaube aber nicht, dass du einfach die B-Version nehmen kannst, da 
dann der B-Port des FTDI2232 angesprochen wird.
Überprüfe mal die Einstellung von "ft2232_device_desc" und 
"ft2232_vid_pid". Vieleicht ist da ein Tippfehler.
Ansonsten ist hier MProg (FTDI-Homepage) dein Freund.
Du brauchst auch nicht zwingend "ft2232_device_desc" anzugeben. Wenn du 
die Zeile auskommentierst, wird OpenOCd dir eine Meldung geben, dass es 
entweder "ft2232_device_desc" oder "ft2232_device_id" (<=oder so 
ähnlich) haben muss.
Ich habe es bei mir über die ID eingestellt, kann das aber in nächster 
Zeit nicht nachgucken, da ich meinen Arbeits-PC ne Weile nicht sehen 
werde.
Die ID solltet du mit MProg rausbekommen. Dann funktioiert das aber auch 
nur mit diesem einen Programmiergerät, jeder andere Jtagkey hat ja einen 
andere ID.

Bastler

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis!

Hat aber noch nicht den erwünschten Erfolg gebracht! Was kann ich noch 
tun?

Das mit der B-Version hab ich noch net so richtig verstanden. Ich muss 
doch beide Kanäle installieren, oder nicht? Also werden doch auch beide 
Kanäle angesprochen? Wozu sind die eigentlich genau gut?

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, das mit der A und B-Version ist etwas was mit dem FTDI-Chip zu tun 
hat (?) und man (auch Amontec) nicht abschalten kann. Der 2232 hat einen 
A und B-Port, wobei nur der A-Port den MPSSE-Engine (der JTAG emuliert) 
hat. Der B-Port kann einen zusätzlichen UART zur Verfügung stellen, der 
nützt uns aber für OpenOCD nichts (der Olimex Adapter nutzt den noch 
zusätzlich).
Meldet sich das Ding den bei dir in der Systemsteuerung richtig mit A 
und B-Port an?
Ansonsten kenne ich den den o.g. Fehler nur daher, weil ich mich mal 
vertippt hatte. Wie gesagt, als ich das Problem durch Angabe der ID (und 
weglassen der "ft2232_device_desc"-Zeile) gelöst hatte, wurde der 
Adapter erkannt.

Bastler

P.S.: Ich verwende nicht den Jtagkey von Amontec, sondern eine 
Eigenentwicklung, die in O.OCD lediglich mit Einstellung "ft2232_layout 
jtagkey" angesprochen wird, die originalen FTDI-Treiber und die FTDI 
Standart-VID und PID nutzt. Daher konnte ich die ID mit MProg auch 
selbst vorgeben. Dein JTAGkey und mein Adapter sind nur aus der Sicht 
von OpenOCD identisch, ansonsten nicht.

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Bastler

Könntest du mal deine Bastelanleitung für deinen JTAGKey posten? Bitte!

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile bin ich mit meinem Latein endgültig am Ende!!!

Ich habe in der Konfig-Datei rumgespielt und dabei sämtliche 
Möglichkeiten ausprobiert. Weiterhin habe ich meine gesamte Hardware, 
die ich einsetzte (Eval-Board, JTAG Key) auf Bugs unetrsucht, mit dem 
Erfolg, dass jetzt schonmal die Resetleitungen funktionieren.

Das Problem stellt sich jetzt folgendermaßen dar, dass OpenOCD immer 
sagt, dass er die JTAG chain nicht validieren kann

Error: jtag.c:1444 jatg_validate_chain(): Error validating JTAG scan 
chain, IR mismatch, scan returned 0x3F

Ich erkenne daraus, dass er aufgrund keiner geschlossen JTAG chain nicht 
kommunizieren kann. Ist das so richtig??? Und wie kann ich dem Abhilfe 
schaffen???

Bin für jede Idee dankbar! Mir sind sie nämlich ausgegangen!

Eric

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu deinen Problemem:

1. Setze den Parameter zur Config-File in "", also "c:\ ...". Sonst 
verursachen z.B. Leerzeichen, dass die Datei nicht gefunden wird.

2. Überprüfe die Einstellungen von TRST und SRST, macht der uC einen 
Dauerreset?

3. Es wird nur "JTAGKey A" verwendet. Kanal B ist nirgends 
angeschlossen. Im Gerätemanager taucht er trotzdem auf.

4. Lösche mal das Flash des uC und versuche es dann noch einmal.

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hinweise

zu 1.) Habe ich gemacht: keine Veränderung

zu 2.) Config Einstellung: reset_config trst_and_srst srst_pulls_trst
       Er führt keinen Dauerreset durch, sondern läuft ganz normal an

zu 3.) Genauso isses. Aber was mich stutzig macht ist, dass OpenOCD 
immer mit zwei Devices arbeiten will und das eventuell auch irgendwie 
tut, aber das ja gar nicht sein kann/darf.

zu 4.) Habe ich gemacht: keine Veränderung

Was nun???

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du in der Config-File auch Kanal A mit angegeben? Unter Windows 
muss man das.

Wenn der bei mir Meldungen mit Kanal A & B anzeigt, dann immer nur dann, 
wenn OpenOCD schon lief und dann ein 2. mal gestartet wurde. Was mich 
irritiert, dass bei dir weiter oben nur Kanal B angezeigt wurde. 
Normalerweise werden alle vorhandenen Devices, also Kanal A und Kanal B 
aufgelistet. Sind beide im Gerätemanager vorhanden?


Welche Version nutzt du gerade? Die aktuelle cvs Version?

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende die Version r717.

Im Gerätemanager sind beide Kanäle erkannt.
Im Konfig-Script habe ich dazu folgendes zu stehen:
     ft2232_device_desc "Amontec JTAGkey A"

Das mit dem 2. mal starten kann ich ebenfalls bestätigen.

Vielleicht habe ich mich falsch ausgedrückt. Bei mir listet er gar keine 
Devices auf. Nach Ausgabe der Version und dem Standard-Zeugs, kommt 
sofort die Fehlermeldung. Und das bei einem Aufruf mehrmals.

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, dann wird der chip nicht erkannt. Mit einem Logicanalizer sollte 
man erkennen, was los ist. Alles andere wird schwierig.

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ich noch vergessen habe zu erwähnen ist, dass wenn ich eine 
Messspitze vom Oszi oder vom Logic Analyzer an die JTAG Pins dran hänge, 
die Signale deys JTAGs beeinflusst werden. Das schliesse ich daraus, 
dass andere Fehlermeldungen bzw. Warnings von OpenOCD ausgegeben werden. 
Man beachte dabei, dass ich die Pins alle laut NXP FAQs mit Pull-Ups 
bzw. Pull-Downs beschaltet habe.

Es sieht dann folgendermaßen aus: OpenOCD erkennt zwei Devices. Jedoch 
kommt direkt nach der Erkennung die Warnung:

Warning: embeddedice.c;185 embeddedice_build_reg_cache(): EmbeddedICE 
vesion 7 detected, EmbeddedICE handling might be broken

Und das alles nur wegen den Messspitzen???

Außerdem noch eine andere Frage. Auf was für Signalzustände muss ich den 
diesbezüglich achten, um heraus zufinden woran es liegt??? Geht es dabei 
nur um die JTAG Pins oder eventuell auch andere Bussignale?

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da sollte sich nicht zu viel tun. Auf den Boards, mit denen ich 
gearbeitet habe, waren Pullups von 1k (Reset) oder 100k verbaut. Da 
sollte das 1Meg des Tastkopf nicht zu viel ausmachen. Eventuell einen 
1:10 Tastkopf verwenden?

Warum hast du eigene Widerstände angeschlossen? Dachte du verwendest ein 
fertiges Board? Hast du deinen Aufbau mit Referenzplänen verglichen?
Viel mehr kann ich dir dazu dann auch nicht mehr sagen.

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gemessen auf demBoard und siehe da: die Pins hingen in der 
Luft. Ohne Widerstand. Schon komisch! Hätte ich auch net gedacht. Aber 
es war tatsächlich so

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, dann wurde der 1Meg vom Oszi zum Pullup ;)
Bei meinem ADUC7000 ist an TRST 1k und an TDI,TMS und TCK 100k dran. TDO 
hat keinen Pullup. Bei dem hab ich JTAG auch ohne Pullups hinbekommen, 
weil ich nicht wusste, dass sie benötigt werden.

TRST und SRST sind auf dem Amontec explizit als Open Kollektor 
beschaltet. Ohne Pullup tut sich da nichts.

Autor: Eric Schrön (ottili86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem war viel weitreichender.

Der Amontec JTAGKey will die unbenutzen Pins 18 und 20 auf Masse gezogen 
wissen. Und auf meinem Eval Board hängen sie nun einfach mal frei in der 
Luft rum. Lösung: Lötzinn!

Eric

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.