I finally have the JTAGTab code executing from start to finish. I fixed the runtime errors, most of which were caused by a mix-up with the endpoints for sendMultiple. I didn’t notice that two of the addresses had been changed, so I was trying to send information the wrong direction. This was quick and easy to fix, and now it is running entirely.
We had the meeting with Tektronix and learned to use the new oscilloscopes. Very helpful.
Now I am working on verifying that the instructions are reaching the CPLD. I know as fact that the SVF file is parsing correctly, and I would guess that if there were flaws in the rest of the code it would have shown up with the first 20 thousand instructions. So it is probably an error in the communication between the PC-side and the board-side of everything. I found a few places where I left out sendSessionCommand calls. I’ll fix those as soon as possible but I would be surprised if that accounted for many of our problems.
Chris asked me to verify the device ID. I got the SVF file to do so, but now I don’t really know where to go with it. The code that Michael Spray wrote doesn’t verify this, so I have nothing to go on. His other idea was to print out the data received by getMultiple and compare it to find the device ID. I will start on this once I add in the sendSessionCommands I overlooked before.
RIGHT NOW:
I am confident that the correct information is being entered into the sendMultiple commands. What I don’t know is whether there is some kind of initialization that has to be called to set up the cpld for communication. I think that the problems right now are not PC-side. The changes that need to be made probably involve calling certain parameters to the scanRegister, sendSessionCommand, and runRTUNTEST functions (these are the only three that directly communicate with the board). Since I haven’t worked on the board-side code, I don’t know what to make of these problems.
Chris: I’m sorry that my code is poorly commented. Most of it closely matches the structure of Michael SPray’s code, so you can look to that for comments, but some of the hacks and fixes are unique to mine. When I return I will comment it better. Thanks.