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
mal die Zeile auskommentieren: gdb_memory_map enable mit # vorne dran, vielleicht gehts dann richtig...
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
Versuch mal die OpenOCD Version r247. Gibts in diesem Thread: Beitrag "Probleme mit OpenOCD Phytec lpc2294"
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
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?
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
ich hab vergessen zu erwähnen, dass das Configfile bei mir im selben Ordner liegt, wie die OCD.exe
@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
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
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
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
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?
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.
@ Bastler Könntest du mal deine Bastelanleitung für deinen JTAGKey posten? Bitte!
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
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.
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???
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?
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.
Tja, dann wird der chip nicht erkannt. Mit einem Logicanalizer sollte man erkennen, was los ist. Alles andere wird schwierig.
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?
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.
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
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.
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
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.