---
** [tickets:#337] OpenOCD in endless-loop after supply drops on USB adapter**
**Status:** new
**Milestone:** 0.10.0
**Labels:** FTDI USB
**Created:** Fri Feb 18, 2022 12:48 PM UTC by Andreas Müller
**Last Updated:** Fri Feb 18, 2022 12:48 PM UTC
**Owner:** nobody
Dear OpenOCD developer team,
you've made a good tool and I got really far with it.
I don't like to claim about errors that I saw, and of course at first I think,
I'm too stupid.
And searched a lot to find a reason or solution. But even Google couldn't find
anything...
Well, I'm using OpenOCD to debug an STM32F407 via an FTDI UM232H.
At first: It's working. :-)
Now I want to make some startup-tests, the STM32F407 and FTDI UM232H are
powered down.
It's clear, that OpenOCD reports an error and exits.
So I have to restart it again.
But I see the following behaviour:
If I start the OpenOCD with not-supplied target, the answer is:
~~~
pi@raspberrypi:~/openocd$ sudo openocd -f ./openocd_ST32_R3_232h.cfg
Open On-Chip Debugger 0.11.0+dev-00418-g918811529 (2021-10-12-13:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6014, description '*',
serial '*' at bus location '*'
pi@raspberrypi:~/openocd$
~~~
That's clear, and all is OK.
Starting with supplied target, is also OK:
~~~
pi@raspberrypi:~/openocd$ sudo openocd -f ./openocd_ST32_R3_232h.cfg
Open On-Chip Debugger 0.11.0+dev-00418-g918811529 (2021-10-12-13:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 500 kHz
Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b (ARM
Ltd), part: 0xba00, ver: 0x4)
Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020
(STMicroelectronics), part: 0x6413, ver: 0x0)
Info : stm32f4x.cpu: Cortex-M4 r0p1 processor detected
Info : stm32f4x.cpu: target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f4x.cpu on 3333
Info : Listening on port 3333 for gdb connections
~~~
Well, everything is fine - till now.
But now I stop the power supply (a weak connection brings the same result) and
then I'm trapped in an n-loop.
Even typing CTRL+C or CTRL+X doesn't stop it:
~~~
Error: ftdi device did not accept all data: 0, tried 75
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Polling target stm32f4x.cpu failed, trying to reexamine
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
Error: libusb_handle_events() failed with LIBUSB_ERROR_NO_DEVICE
Error: unable to purge ftdi rx buffers: LIBUSB_ERROR_NO_DEVICE
Error: error while flushing MPSSE queue: -4
......
~~~
The same with debug info:
~~~
Debug: 198 1646 command.c:201 script_debug(): command - mww 0xE0042008 6144
Debug: 199 1649 command.c:201 script_debug(): command - flash init
Debug: 200 1650 tcl.c:1387 handle_flash_init_command(): Initializing flash
devices...
Debug: 201 1651 command.c:201 script_debug(): command - nand init
Debug: 202 1652 tcl.c:498 handle_nand_init_command(): Initializing NAND
devices...
Debug: 203 1652 command.c:201 script_debug(): command - pld init
Debug: 204 1653 pld.c:206 handle_pld_init_command(): Initializing PLDs...
Debug: 205 1653 command.c:201 script_debug(): command - tpiu init
Info : 206 1654 gdb_server.c:3539 gdb_target_start(): starting gdb server for
stm32f4x.cpu on 3333
Info : 207 1654 server.c:312 add_service(): Listening on port 3333 for gdb
connections
Error: 208 13221 mpsse.c:930 mpsse_flush(): ftdi device did not accept all
data: 0, tried 75
Debug: 209 13221 mpsse.c:423 mpsse_purge(): -
Error: 210 13221 mpsse.c:431 mpsse_purge(): unable to purge ftdi rx buffers:
LIBUSB_ERROR_NO_DEVICE
Error: 211 13221 ftdi.c:656 ftdi_execute_queue(): error while flushing MPSSE
queue: -4
Error: 212 13221 mpsse.c:925 mpsse_flush(): libusb_handle_events() failed with
LIBUSB_ERROR_NO_DEVICE
Debug: 213 13221 mpsse.c:423 mpsse_purge(): -
Error: 214 13221 mpsse.c:431 mpsse_purge(): unable to purge ftdi rx buffers:
LIBUSB_ERROR_NO_DEVICE
Error: 215 13221 ftdi.c:656 ftdi_execute_queue(): error while flushing MPSSE
queue: -4
Debug: 216 13221 target.c:1838 target_call_event_callbacks(): target event 0
(gdb-halt) for core stm32f4x.cpu
User : 217 13221 target.c:3054 handle_target(): Polling target stm32f4x.cpu
failed, trying to reexamine
Debug: 218 13221 target.c:1838 target_call_event_callbacks(): target event 19
(examine-start) for core stm32f4x.cpu
Error: 219 13221 mpsse.c:925 mpsse_flush(): libusb_handle_events() failed with
L~~~
IBUSB_ERROR_NO_DEVICE
Debug: 220 13221 mpsse.c:423 mpsse_purge(): -
Error: 221 13221 mpsse.c:431 mpsse_purge(): unable to purge ftdi rx buffers:
LIBUSB_ERROR_NO_DEVICE
Error: 222 13221 ftdi.c:656 ftdi_execute_queue(): error while flushing MPSSE
queue: -4
Error: 223 13221 mpsse.c:925 mpsse_flush(): libusb_handle_events() failed with
LIBUSB_ERROR_NO_DEVICE
Debug: 224 13221 mpsse.c:423 mpsse_purge(): -
Error: 225 13221 mpsse.c:431 mpsse_purge(): unable to purge ftdi rx buffers:
LIBUSB_ERROR_NO_DEVICE
Error: 226 13221 ftdi.c:656 ftdi_execute_queue(): error while flushing MPSSE
queue: -4
Error: 227 13222 mpsse.c:925 mpsse_flush(): libusb_handle_events() failed with
LIBUSB_ERROR_NO_DEVICE
.....
~~~
It seems there is an endless-loop between the modules, but no shutdown if this
error occures.
I looked for a forgotten parameter or setting, so that OpenOCD stops. But
without success...
I'm a hardware developer, managed to configure OpenOCD to a working state.
But I'm not a software developer. I can't find the error and distribute it.
Could you please help me?
Best regards
Andreas Müller
---
Sent from sourceforge.net because [email protected] is
subscribed to https://sourceforge.net/p/openocd/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/openocd/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.