This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS570LS0914: How to choose one of two different XDS110 probes to connect use with CCS

Part Number: TMS570LS0914

Tool/software: Code Composer Studio

I have a board with two separate TMS570s on it which I debug via two separate XDS-110s.  I do not need to debug them at the same time.  I just wish to be able to choose which processor I am loading with code or debugging.

Currently, I can plug one or the other XDS110s into the USB of my computer.  But I would like to chose without doing this.  If I plug both in, CCS asks me which one I want to use.  This is ideal!  However, it does not work. It apparently edits the ccxml file incorrectly and I get a syntax error in the ccxml file as follows:

Cannot read System Setup data from XML file ....TMS570LS0914.ccxml.  Error parsing fle:  Fatal Error at (11,66): Invalid character reference.

The contents of the ccxml file that was created by CCS is as follows:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="configuration_0">
        <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
            <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
            <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
            <instance XML_version="1.2" href="drivers/tixds510cortexR.xml" id="drivers" xml="tixds510cortexR.xml" xmlpath="drivers"/>
            <property Type="choicelist" Value="1" id="Debug Probe Selection">
                <choice Name="Select by serial number" value="0">
                    <property Type="stringfield" Value="L3122&#0;&#0;&#0;" id="-- Enter the serial number"/>
                </choice>
            </property>
            <platform XML_version="1.2" id="platform_0">
                <instance XML_version="1.2" desc="TMS570LS0914" href="devices/tms570ls0914.xml" id="TMS570LS0914" xml="tms570ls0914.xml" xmlpath="devices"/>
            </platform>
        </connection>
    </configuration>
</configurations>

=================

1) Can you please tell me the correct syntax so that I can edit this file to actually ask me each time which XDS110 I want (or to chose the same one always)

2) I'd like to report this as a bug in CCS 8.3.0.00009

Thanks...

  • Hi,

    Indeed you have invalid characters on the serial number field, and I suspect you added a serial number smaller than eight characters. 

    Unfortunately this is a limitation of the XDS110 Debug Probe. 

    References to set the serial number and configure CCS are shown at: 

    https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html

    https://software-dl.ti.com/ccs/esd/documents/sdto_ccs_multi-probe-debug.html

    I apologize for the inconvenience,

    Rafael

  • Thank you for the reply.  Could you please confirm that I understand correctly:

    The issue is that the serial number on my XDS110 is only 4 digits, and tie ccxml script requires an 8-digit serial number.  The "limitation" that you speak of is that the default serial number for the XDS110 is 4 digits, right?  I can upgrade the serial number to an 8-digit number using the link you showed me? 

    I'll give that a try and let you all know if it worked.

  • Hi,

    Yes, you understood it correctly.

    Regards,

    Rafael

  • Rafael,

    Yes, changing the serial number did allow CCS to create a CCXML file that worked.  Thanks for those links.  However, I have been unable to arrange anything that will give me a choice of which processor (that is which XDS110) to use (and remember I really only want one at a time).  Ideally, either the ccxml file would cause the system to ask me which one I wanted to use (there seems to be a question in the ccxml, but it is never asked if the specified serial number is plugged in. 

    I tried following the target configuration directions to create a new configuration, but the associated video is how to debug two at once.  Not what I need.

    I think I am confused between target configuration and debug configuration.  I tried to create a second debug configuration file that used an alternate ccxml file with the other serial number, but the program would not load in that case.

    Any more help would be appreciated.

  • Burns Fisher said:
    However, I have been unable to arrange anything that will give me a choice of which processor (that is which XDS110) to use (and remember I really only want one at a time).  Ideally, either the ccxml file would cause the system to ask me which one I wanted to use (there seems to be a question in the ccxml, but it is never asked if the specified serial number is plugged in. 

    If you specify a serial number in the target configuration ccxml file (like in this graphic), then when that ccxml file is used to launch a debug session, it will use the XDS110 probe with that serial number.

  • Thank you Ki.  Yes, I did do that, but my problem is connecting the target configuration specified in the target view (which is what you showed) to a debug configuration.  When I specified the new target config in a debug config, it refuses to load the code.  In fact it only loads the code with the default target configuration file.  Otherwise, it switches to the debug view, the "terminate" button lights, but no code is loaded, and no debug session happens.  As I said above, think I am not understanding the interaction between target configuration and debug configuration.

  • A debug configuration is a generated (cache) file that is used to configure the debugger before starting a debug session. Most users commonly do not modify the debug configuration directly. I would delete the existing debug configuration and launch a debug session using the newly modified target configuration file. The debugger will then generate a new debug configuration based on the information in the ccxml file.

  • I re-read your post and just want to clarify the desired environment setup - you would like to use a ccxml to perform a manual debugger launch for a specific XDS110 probe, but also have the lanuch auto-connect to the CPU and load the program. Is this what you wish to do?

  • Thank you for double checking.  I'm not totally sure exactly what your words mean. 

    I have been pushing the "debug" button (the green bug) to load code and debug my code on whichever CPU has its XDS110 plugged into the USB.  I have also used the pulldown beside the debug button to choose one of two configurations, one of which loads the code and debugs, and one which debugs without loading new code. 

    What I would like to do is to leave both XDS-110s plugged into USB and have an easy way to choose which one I want to use.  One easy way I know of would be to choose a different debug configuration, but this particular method is not a requirement.  I just need to be able quickly to switch from loading and debugging one processor to loading and debugging the other. 

    I have tried creating a new target configuration, and "test" shows that it is connected. However. I can't seem to attach that target configuration to a debug configuration and have it work (I described what happens above).

    Thanks again...

  • Burns Fisher said:
    What I would like to do is to leave both XDS-110s plugged into USB and have an easy way to choose which one I want to use.  One easy way I know of would be to choose a different debug configuration, but this particular method is not a requirement.  I just need to be able quickly to switch from loading and debugging one processor to loading and debugging the other. 

    I would suggest that you create new separate ccxml files for each XDS110 (differentiated by serial numbers). Delete any existing debug configurations for them. Then do a manual launch from the target configuration view for one ccxml file. This will generate a new debug configuration and start a debug session. See if you can successfully connect and load code to the target that the ccxml file is configured for. If successful, repeat with the other one. If that one is good also, then try modifying the debug configuration to adjust some of the properties (such as autoconnect and specifying a program to load). Then you can use the debug configurations to launch debug sessions.

  • Hi,

    If I understood it correctly, you set the Target Configuration File (.ccxml) set to the default value "Only one XDS110 installed" and leave both boards connected. When launching the debugger, it will prompt you which board you want to load. 

    When launching the target a second time, CCS will not prompt for the serial number anymore. 

    This can be solved in two ways:

    - Create two target configuration files in the shared location, one for each serial number, and manually launch each at its own time. Details about these topics can be found at chapter 7 of the CCS User's Guide:

    https://software-dl.ti.com/ccs/esd/documents/users_guide/index.html 

    - Have a single Target configuration file but reset the debug probe serial number on the Debug configuration when a board switch is required. Go to menu Run --> Debug Configurations, select the corresponding configuration and click on the button Reset Debug Probe Connection S/N 

    Let me know if you meant something else. 

    Hope this helps,

    Rafael

  • Apparently I never should have deleted my old debug configurations.  Now nothing works!  When I try to debug all I see is that I have switched to the debug view, the red 'disconnect; button is lit, and in the "debug" window, it says

    Texas Instruments XDS110 USB Debug Probe_0/CortexR4 (Disconnected : Unknown)    

    Now I am really in trouble!  Can I at least somehow generate the original ccxml file and get back to where I was before?

  • Burns Fisher said:

    When I try to debug all I see is that I have switched to the debug view, the red 'disconnect; button is lit, and in the "debug" window, it says

    Texas Instruments XDS110 USB Debug Probe_0/CortexR4 (Disconnected : Unknown)  

    This is actually the expected behavior for a manual launch. From here, you can manually connect to the target and manually load the program. You can later configure the debug configuration to automatically do this. But for now, I just want to make sure that you are starting a debug session for the correct target.

  • Oh!  Well that's good to know.  I'm taking a brief sanity break, but perhaps you would tell me or give me a link about how to manually connect and manually load.  Sorry I have to keep asking questions, but whereever I look in documentation, it seems to talk about things like "manual launch" like you did that I don't know in detail what that means.  Thanks for sticking with me...

  • Burns Fisher said:
    perhaps you would tell me or give me a link about how to manually connect and manually load.

    I created a little video of where I do a manual launch of the debugger, and then manually connecting the target and loading a program:

    /cfs-file/__key/communityserver-discussions-components-files/81/manual_5F00_launch.zip

    Burns Fisher said:
    Sorry I have to keep asking questions, but whereever I look in documentation, it seems to talk about things like "manual launch" like you did that I don't know in detail what that means.

    Sorry for the confusion. I wasn't sure if you saw that information already. If you have not, it is described in section 7.3.2 of the User's Guide:

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html#manual-launch

  • Don't be sorry...I did not "RTFM" so all I can do is thank you for giving me the pointers.

    Thanks to those links,I have this working again.  Thank you very much for the pointer to the documentation.  I also think that I found the right place in the debug configuration to make it connect and load automatically, namely in "manage configuration" tab under the program tabn, putting in the project name which then enters "$(Build_aftifact:name).

    This does correctly connect only to a single XDS110 even when both are plugged in, so I believe I can just create a second one.

    Is there anything else I should know?  If not, thank you very much!

  • Thank you for the good idea, Rafael.   Good to have multiple approaches now that you told me about the serial number length problem.

  • Burns Fisher said:

    Thanks to those links,I have this working again.  Thank you very much for the pointer to the documentation.  I also think that I found the right place in the debug configuration to make it connect and load automatically, namely in "manage configuration" tab under the program tabn, putting in the project name which then enters "$(Build_aftifact:name).

    Great!

    Burns Fisher said:
    This does correctly connect only to a single XDS110 even when both are plugged in, so I believe I can just create a second one.

    Yes, exactly. The key thing is that each ccxml has the XDS110 serial number to differentiate them.

    Burns Fisher said:
    Is there anything else I should know?  If not, thank you very much!

    Just be aware that some changes to the ccxml file associated the debug configuration can change some settings you modified in the debug configuration (like if you change the connection type, etc).

    Thanks

    ki