Forum: Mikrocontroller und Digitale Elektronik LPC2148 mit openOCD: kein halt nach reset


von Christian R. (jonathanarcher)


Lesenswert?

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

von ThomasKausM (Gast)


Lesenswert?

Hallo Christian,
stehe momentan vor dem gleichen Problem. Hast Du inzwischen eine Lösung 
gefunden ?

Mfg
THomas

von Jan B. (berge)


Lesenswert?

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

von Martin L. (Gast)


Lesenswert?

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.

von Christian R. (jonathanarcher)


Lesenswert?

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