Thanks for your tests!
You did not replyed about the email address in the commit message, please let 
me know.

After one night sleep and the logs you put in your last message, I realised 
that the product_string is not always the same,  but depends on the backend of 
hidapi library.
On Linux there are two backends: hidapi-hidraw and hidapi-libusb.

The libusb backend puts in product_string the "iProduct" from the USB Device 
Descriptor, so it will be "LPC-LINK2 CMSIS-DAP V5.224" for all the three 
interfaces. This requires the quirk about checking the interface number I have 
put in my second patch.

The hidraw backend relies on the HID kernel driver to get the product_string, 
and on LPC-Link2 we should get different cmsis_dap_vid_pid for each interface.

On Windows and Mac we have other hidapi implementations. Would be good to check 
there too.

By "chance" my patch set also works for the case when you add cmsis_dap_vid_pid 
command and use hidraw backend. Actually there is another sort-of-bug there, 
but I was not thinking to fix it. I will do it right now! In fact, when using 
cmsis_dap_vid_pid command openocd skips the check for product_string containing 
"CMSIS-DAP"! Again the quirk fixes it!


---

** [tickets:#255] LPC-Link2 Not Working as CMSIS-DAP**

**Status:** new
**Milestone:** 0.9.0
**Created:** Mon Nov 04, 2019 01:35 AM UTC by Donald Bailey
**Last Updated:** Tue Jun 30, 2020 05:39 AM UTC
**Owner:** nobody


Hi,

I'm working on a project with the NXP LPC824 using VisualGDB and OpenOCD. Using 
the LPCXpresso824-MAX dev board I had no trouble programming and debugging 
using OpenOCD. I have recently built my first prototype PCB for this project 
and purchased an LPC-Link2 to use as a CMSIS-DAP debugger with it. However, I 
am unable to get the LPC-Link2 to work with OpenOCD. I keep getting a 
"CMSIS-DAP command CMD_INFO failed" error.

I have flashed the CMSIS-DAP firmware to the LPC-Link2, reinstalled the 
drivers, and followed any other troubleshooting tips I could find, but with no 
success. The LPC-Link2 works when flashed with the Segger J-Link firmware and 
also with the CMSIS-DAP firmware when debugging through MCUXpresso, so it does 
not appear to be a problem with the probe or the firmware but rather something 
specific to OpenOCD. There is nothing wrong with the target board because, as a 
workaround, I have removed the target MCU from the LPCXpresso824-MAX and am 
using its external debug header to debug the target MCU on my PCB.

I am using the version of OpenOCD that comes with VisualGDB (0.10.0) but I have 
also tried the 0.10.0 version that is from the MSYS2 repositories I am on 
Windows 10.

Here is the output of my version of OpenOCD with the LPC-Link2 with debug 
turned on.
```
openocd.exe -f interface/cmsis-dap.cfg -c "debug_level 4"
Open On-Chip Debugger 0.10.0 (2019-08-28) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
User : 14 6 options.c:60 configuration_output_handler(): debug_level: 4
User : 15 9 options.c:60 configuration_output_handler():
Info : 16 13 server.c:311 add_service(): Listening on port 6666 for tcl 
connections
Info : 17 16 server.c:311 add_service(): Listening on port 4444 for telnet 
connections
Debug: 18 19 command.c:143 script_debug(): command - init init
Debug: 20 21 command.c:143 script_debug(): command - target target init
Debug: 22 23 command.c:143 script_debug(): command - target target names
Debug: 23 26 target.c:1431 handle_target_init_command(): Initializing targets...
Debug: 24 59 cmsis_dap_usb.c:251 cmsis_dap_usb_open(): Cannot read product 
string of device 0x46d:0xc232
Debug: 25 65 cmsis_dap_usb.c:251 cmsis_dap_usb_open(): Cannot read product 
string of device 0x46d:0xc231
Debug: 26 1075 cmsis_dap_usb.c:409 cmsis_dap_usb_xfer(): error reading data: 
(null)
Error: 27 1081 cmsis_dap_usb.c:503 cmsis_dap_cmd_DAP_Info(): CMSIS-DAP command 
CMD_INFO failed.
Debug: 28 1088 command.c:630 run_command(): Command 'init' failed with error 
code -107
User : 29 1103 command.c:695 command_run_line():
```

Any ideas? I have tried the NXP forums and StackExchange but noone seems to 
know anything.

Regards,
Donald


---

Sent from sourceforge.net because openocd-devel@lists.sourceforge.net 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.
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to