Hello,
I have been investigating a problem with exceptions and have come to the end of the road with normal breakpoints. I now would like to use trace as a logic analyser to tell me what code was executing prior to the exception occuring.
I am using:
CCS v4.2.5.00005
Specturm Digital XDS510 USB
custom PCB with TMS320C6474
I understand that I don't need and XDS560, and that I can use trace with an XDS510 with the ETB module.
The data manual SPRS552H states "The C6474 device supports Trace". I take this to mean that I can use ETB with the C6474.
I found a silent video showing how to use trace: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_ccstudio/CCSv4/Demos/TraceCodeRunaway.htm
But having set the trace points, I get error messages in the error log.
In the debugger, if I try and access the Tools->Trace Control menu I get the error:
An error occurred connecting to Channel Server. Make sure this target supports tracing and it's connected. Native error message: ' Channel server creation failed.'
I have checked the project .tcf file for settings that might be involved:
Global settings: "Enable Real Time Analysis" and "Enable All TRC Trace Event Classes" are enabled.
Instrumentation: I had an entry called trace with data type "printf". I added another with data type "raw data" just in case it was needed.
Input/Output: RTDX is enabled. HST is enabled using RTDX.
After much searching on Google, I have put together enough snippets of information to work out that I need to add an ETB node to my project's target configuration so that the debugger has something to talk to.
I did find a wiki page for CCSv5 explaining how to do this on an early version of CCSv5 (http://processors.wiki.ti.com/index.php/Adding_an_ETB_Node_to_the_CCSv5_Target_Configuration), and I have tried to use this as a guide for what I should expect.
But it seems to be too different to work under CCSv4.
I have tried various methods of adding the node, but most failed to give a debugger session that could be launched.
The best attempt I have managed, is to add an ETB_11 cpu node to the subpath that contains the core_0 processor I am working on:
- Spectrum Digital XDS510USB Emulator_0
- TMS320C6474_0
- ICEPICK_C
- Subpath_0
- C64XP
- ETB_11_0
- Subpath_1
- C64XP_1
- Subpath_2
- C64XP_2
Having done this, I can launch the debugger, and the three cores connect as usual. At the bottom of the list of cores is a new entry for the ETB_11:
- Spectrum Digital XDS510USB Emulator_0/ETB11_0 [Non-Project Debug Session]
- Disconnected Device
- Thread [main] 9Disconnected(unknown))
0 Symbol not available
Spectrum Digital XDS510USB Emulator_0/ETB11_0 (11:30:27)
Spectrum Digital XDS510USB Emulator_0/ETB11_0:CIO (11:30:27)
If I disconnect core_0, and then connect to target on the the ETB entry, I can access the Tools->TraceControl menu.
But, I can't then load code into the ETB entry, or re-connect to core_0.
(If I don't disconnect core_0, I get lots of errors when I connect the ETB_11.)
So the questions I have are:
- Does the C6474 really support ETB?
- Is there anything else I should have setup in the
- tcf file or
- project settings?
- Should I be adding a node in the target configuration?
- If so, how?
- Is there a document or FAQ that actually tells me how to do all of this?
(So far I have only found bits of the puzzle spread out through the TI web site in a mixture of pdf files, Wiki pages and E2E questions. I never found the Trace Quick start guide that should have been in the CCS help.)
Regards - Paul