Hallo, seit ich vom Wiggler auf einen FTDI-kompatiblen JTAG-Adapter umgestiegen bin (openocd-usb von embeddedProjects) habe ich ein gravierendes Problem mit openOCD. Ich kann mich zwar mit meinem LPC-2148 verbinden, aber nach halt reset (oder halt init) wird kein halt durchgeführt. Die Ausgabe von openOCD (habe mehrere Versionen versucht, zuletzt 0.4.0-r1 mit Unterstützung für lib-ftd2xx): > openocd.exe -f interface\openocd-usb.cfg -f target\lpc2148.cfg Open On-Chip Debugger 0.4.0-rc1 (2010-01-15-10:41) For bug reports, read http://openocd.berlios.de/doc/doxygen/bugs.html RCLK - adaptive jtag_nsrst_delay: 200 jtag_ntrst_delay: 200 trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain Info : device: 4 "2232C" Info : deviceID: 67330064 Info : SerialNumber: A Info : Description: Dual RS232 A Info : RCLK (adaptive clock speed) not supported - fallback to 500 kHz Info : JTAG tap: lpc2148.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4) Info : Embedded ICE version 4 Info : lpc2148.cpu: hardware has 2 breakpoints or watchpoints > reset halt Info : accepting 'telnet' connection from 0 Info : JTAG tap: lpc2148.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4) Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset. target state: halted target halted in ARM state due to debug-request, current mode: System cpsr: 0x2000001f pc: 0x000004c8 Das Debuggen funktioniert einwandfrei (allerdings halt nicht vom Anfang des Programms, was eher ungünstig ist). Außerdem führt die Verwendung von gdb_memory_map enable oder gdb_flash_program enable im cfg-Skript zu einem "command handler execution failed". Das ist mit dem Wiggler auch nicht der Fall... Falls jemand ne Idee hat, wäre ich sehr dankbar, ich komme hier einfach nicht weiter. Viele Grüße, Christian
Hallo Christian, stehe momentan vor dem gleichen Problem. Hast Du inzwischen eine Lösung gefunden ? Mfg THomas
Ein ähnliches Problem hatte ich auch. Das Problem: Beim Hardwarereset wird auch JTAG neuinitialisiert. Da rennt der LPC erstmal fröhlich los, bis er die Breakpoints etc. mitgeteilt bekommt. Einfache Abhilfe: Das Initialisierungsskript mit einer entsprechend langen Schleife ausstatten. Mit 500.000 Zyklen klappte es bei mir ganz gut. Der Effekt ist natürlich, dass man auch beim normalen starten immer etwas warten muss, bis der uC tut was er soll. Aber die Schleife kann man ja irgendwann verkleinern. Ich hoffe das hilft euch. Liebe Grüße, Jan
Es gibt eine Funktion soft_reset_halt (oder so ähnlich) mit der ich in solchen Fällen arbeite. Bisher ohne unerwünschte Nebenwirkungen. Viele Grüße, Martin L.
Hallo, um ehrlich zu sein, habe ich es aufgegeben und arbeite seit einiger Zeit mit dem J-Link von Segger. Die ganzen Probleme mit OpenOCD haben mich zu sehr aufgehalten. Sorry, dass ich nicht helfen kann. Viele Grüße, Christian
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.