tags:

views:

156

answers:

1

I bought a Hawkboard and went looking for a JTAG emulator to use for debugging. The only one I seemed certain about was the Spectrum Digital XDS100v2, because the pins matched and I had read about others using it with a Hawkboard. I had hoped to use a GCC ARM toolchain and OpenOCD, but the XDS100v2 apparently only works with TI Code Composer Studio. I was fine with that, because the Hawkboard uses a TI processor anyway and I figured a TI compiler would be able to optimize really well for it. After I received the JTAG emulator, I installed TI CCSv4...

I absolutely HATE IT.

It has scattered files throughout my hard drive, cluttered up my user directory, is a massive pain in the ass to configure, and now it won't even uninstall properly. I really, really want to just switch to a GCC toolchain and OpenOCD/GDB for debugging, but I can't find any way to do that with the XDS100v2.

There was some recent discussion about this on the OpenOCD mailing list, but it looks like licensing issues prevent the team from including direct support for the XDS100v2. I also found a Git commit made around the same time as the discussion that appears to include code for supporting the XDS100v2, but I don't know if this is official or not. I can't really test it, either, because the XDS100v2 doesn't actually install correctly. I have to install CCSv4 to get the drivers, but I refuse to do this on my other machine because I don't want it to get cluttered like the first one. The discussion mentions that the XDS100v2 is actually just a FTDI device, so I tried using a generic FTDI driver, but Windows didn't recognize it.

I guess what I'm asking is this: Is there some way that I can easily get OpenOCD to support the XDS100v2 by somehow using a generic FTDI driver or another method? I spent $80 on this JTAG emulator and I really hate to let it go to waste.

A: 

Getting OpenOCD to work with this will be tricky...
First you need to add the USB IDs of you XDS100v2 to the driver inf file. Please note that you have to choose between the FTDI drivers and libusb drivers depending how you compiled OpenOCD. If you downloaded a binary OpenOCD version, you should use the drivers shipped with it. Once you added the correct USB Vendor and Product ID to inf file, the driver will install (you have to tell windows the correct path). This step is only needed on Windows platforms.
The device manager will tell you the ID numbers on its "Details" page as "Hardware IDs" Property. Is VID_xxxx and PID_yyyy where xxxx is the Vendor id (VID) and yyyy is the Product id (PID).

Next step is to tell OpenOCD the USB ID (the same you used in the .inf file) - look at other interface/*.cfg files that have the line "interface ft2232". The "layout" is tricky, just use try-and-error on these.

Final step is to make a complete board definition - look for boards that contain the same or similar cpu chips. If reset does not work, try "reset_config none".

Turbo J