- Thu Jan 05, 2017 5:43 pm
I am trying to use OpenOCD to support GDB access to my system board's ARM CPU while also using it to access a jtag device in my chip that acts as a bus master and can access everything inside my chip. So, I have an ARM CPU with its tap controller and my jtagdebuger with its own tap controller. I have been able to define the scan chain correctly and have demonstrated that I can access my onchip and on board resources using some basic GDB commands. I have also been able to define a tcl peek and poke commands withing OpenOCD that use the jtag primitive irscan and drscan commands. These both work great and I'm somewhat happy. The problem is, when I try to use them both at the same time it appears that my primitive irscan and drscan commands may get interrupted by other jtag activity (maybe polling of the cpu state?). I'm thinking that the complete irscan and the complete drscan commands may get executed without interruption but my "peek" command consistes of a sequence of an irscan, drscan plus another drscan to read back my data. If the jtag gets used to access another tap controller between my sub-commands, I'm hosed and my peek fails. Likewise with the poke command. I read somewhere that if I put all the irscan and drscan commands on a single line when I define my peek and poke commands, that would "guarantee" that they would get executed in sequence without fail. But, that does not appear to be the case. I'm asking for help in how to insure my commands all get executed correclty or maybe I need to build a new primitive peek and poke command within OpenOCD. I can't believe this is not a common issue, well, at least somewhat common. I'm a hardware designer so please bear with me. All help will be appreciated.