Forums

DSP Software inhibit Jtag ?

Started by Greg March 12, 2007
Dear all,

I've a problem with my software which inhibits or at least makes it very 
hard
to connect to the target (320C64xx) with CCS. It's definitely a software 
bug.
I've a chain of DSP's and I've the trouble only with one of them in the 
chain.
Unfortunately I don't have a clue where to start searching in TI's 
documents.
I've not found that there is a possibility to "break" Jtag possibility by 
software.

Does one know where I could look or what could have gone wrong ?

                                                    Many thanks in advance,

                                                                             
Wolfgang



Greg wrote:
> Dear all, > > I've a problem with my software which inhibits or at least makes it very > hard > to connect to the target (320C64xx) with CCS. It's definitely a software > bug. > I've a chain of DSP's and I've the trouble only with one of them in the > chain. > Unfortunately I don't have a clue where to start searching in TI's > documents. > I've not found that there is a possibility to "break" Jtag possibility by > software. > > Does one know where I could look or what could have gone wrong ? > > Many thanks in advance, > > > Wolfgang >
Well, first I'd determine whether it's software or hardware related. Can you put in a really simple piece of software such as some code that just branches to itself and doesn't actually do anything? Hopefully that type of code would be perfectly stable so that you know it's a software issue. If your program does any errant reads/writes to reserved memory this is frequently a cause of device instability, and hence JTAG instability. A common cause for this would be an uninitialized variable such as a pointer or array index. Note the TI compiler does NOT set global/static variables to zero automatically if you do not specify an initialization value. You may want to try having your bootloader initialize the bss section to zero before it branches to _c_int00, or else comb through your code looking at all your variable declarations to make sure the ones that need an initial value get one. You may want to turn on some of the diagnostics in the compiler options as well. It may give you a clue as to the piece of rogue software.
Hello Brad,

> Well, first I'd determine whether it's software or hardware related.
It is definitely software related. If the software is not booted (bootmode change) there's no trouble with the emulator.
> If your program does any errant reads/writes to reserved memory this is > frequently a cause of device instability, and hence JTAG instability.
Yes. But if the program is loaded by the CCS it runs like expected. It does not crash. Even when booted from Flash Debugger can't connect, but software works well. So there's no hint to a potentially "uninitialized variable". I thought if I would know how to bring JTAG to instability, i could watch these registers with the debugger (different bootmode, programm loaded by CCS) or by my own program (if bootloader disturbs something).
> value. You may want to try having your bootloader initialize the bss > section to zero before it branches to _c_int00, or else comb through your > code looking at all your variable declarations to make sure the ones that > need an initial value get one.
Variables that need initialisation are marked and all (hopefully) initialized well.
> You may want to turn on some of the diagnostics in the compiler options as > well. It may give you a clue as to the piece of rogue software.
Any hints which compiler options (despite "full symbolic debug") you mean ? Unfortunately the only way I know to find such an error is to cut the software in half over and over again to find when the error vanishes but this requires a lot of time. The only indication I have is that sometimes I get an error message: "28150 *** ERROR: 0xffffffff 0xffffffff ***" in DSP/BIOS Message Log Window. But by googling I only found one Message in this newsgroup about the error with no answer. Any hints welcome, Wolfgang