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.

Real-Time Debugging with XDS560v2 STM and TMS570LS12x

Other Parts Discussed in Thread: TMS570LS1227, DRV8301

I'm trying to do real-time debugging on a TMS570LS1227 with a Spectrum Digital XDS560v2 and was under the impression that I would be able to do things like watch a variable change without pausing the program. I can't do this in CCS and I'm not sure where the limitation is. I don't have a good understanding of JTAG to begin with so I'm not sure if something is not configured correctly or the emulator/processor does not support the functionality I am looking for. The emulator is connected to the TMS via the 14-pin interface -- the TMS570LS1227 does not have EMU0 and EMU1 pins, so those are disconnected.

Is real-time debugging possible with the hardware I have and is there just something missing in my configuration? What do I need to get real-time debugging? Also, a digestible source of information on JTAG would be greatly appreciated.

  • Hi Sean,

    Are you having this issue on Hercules motor control card or your own design?

    I have encountered similar issue when using XDS100v2 on Hercules motor control card, but get over the problem by installing the special tixds510cortexR.dvr file in CCS directory: C:\ti\ccsv5\ccs_base\emulation\drivers with this attached file.


  • Henry Nguyen said:

    Hi Sean,

    Are you having this issue on Hercules motor control card or your own design?

    I have encountered similar issue when using XDS100v2 on Hercules motor control card, but get over the problem by installing the special tixds510cortexR.dvr file in CCS directory: C:\ti\ccsv5\ccs_base\emulation\drivers with this attached file.

    Thanks for the reply Henry. This is the Hercules motor control card. Where do I get this "special" .dvr file? I see that tixds560cortexR.dvr already exists in that directory. I also had the same issue with the XDS100v2 and though that the XDS560 would bring me this feature.

  • Henry,

    The XDS560v2 STM wouldn't use the same driver as the XDS100v2.

    Sean,

    Likely, the first thing to check is whether you have the memory view selected from the DAP or from the CPU.

    You need to be looking at memory through the DAP to see it update while the CPU is running.

    -Anthony

  • Anthony F. Seely said:

    Henry,

    The XDS560v2 STM wouldn't use the same driver as the XDS100v2.

    Sean,

    Likely, the first thing to check is whether you have the memory view selected from the DAP or from the CPU.

    You need to be looking at memory through the DAP to see it update while the CPU is running.

    -Anthony

    Thanks, Anthony. Can you point me to where I need to go to check/configure this?
  • Sean,

    OK, this is what i am looking for in your answer.

    for motor control board, i got this special .dvr from TI SDS team and as i said, i encounter similar issue when using xds100v2.

    Please note that the file i will attach to you will work only for xds100v2.  I don't have the special file for xds560.

    See attached file and give it a try using xds100v2...

    http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/312/6371.tixds510cortexR.dvr

  • Sean,

    make sure you save your old file before overriding with new file...

  • Sean,

    Another Hercules team member (Sunil Oak) pointed out a link below:

    http://e2e.ti.com/support/microcontrollers/hercules/w/design_notes/1398.aspx

    give it a try as well...

  • Sean,
    That post above is the one that tells you how to use the DAP.. 
    Thanks Sunil for finding this.

    -Anthony

  • Anthony, Henry,

    I have tried to use DAP mode using the steps outlined in the link Sunil provided. My Debug window does not show the DAP as a debuggable device and I cannot connect to it:

    http://i.imgur.com/LldNtHJ.jpg

    So I tried changing the Run/Debug Settings from /CortexR4 to /DAP like this:

    http://i.imgur.com/AS2R723.jpg

    But I get an endianness mismatch error:

    http://i.imgur.com/i2IVf1a.jpg

    I don't see anything in the Spectrum Digital configuration that changes the endianness of the XDS560 and I'd rather not switch the endianness (currently big) of my program if I don't have to. What is missing?

  • Sean,

    I have not play with the XDS560 on motor control card, so not sure if the driver on CCS is up to date to handle this.

    But we tested the xds100v2 comes along with the control card.

    See this thread for similar issue like you have seen: http://e2e.ti.com/support/microcontrollers/hercules/f/312/p/229893/807411.aspx#807411

    the driver i sent to you yesterday will do the trick.

    Follow instruction in the document coming along with the project.

  • Henry, replacing the driver file does allow me to view variables in real-time with XDS100v2. I have submitted this thread to Spectrum Digital and wait to hear what they have to say. Thanks.

  • Hi Sean,

    OK, finally, i was able to grab a hold of XDS560 STM (expensive stuff) and try out on the control card.

    Thanks to Sunil Oak & Anthony S pointed out in some other post in TI forum that there is an instruction on how to deal with this.

    Here is the snap shot of ccxml setup, make sure you setup the AccessPortDesignator and Address correctly.

    Click on test to make sure you can do a quick scan first.

    Then, launch target configuration.  Right click on xds560v2.ccxml icon and scroll down to select edit xds560v2.ccxml

    It will bring up another window.  Make sure these options are selected as below:

    Now you should be able to expand all Non-Debuggable Devices and connect.

    Now you should be able to connect thorugh xds560v2 STM USB emulator and run.

    It ran for me.

    I hope this helps.  I got to say one thing, the xds560 is FAST, i like it now...

  • Oh Sean,

    i forgot to mention one thing.

    When you use XDS560, most likely you will connect to the DRV8301 base board because the motor control card you have do not have any connection for you.

    In this case, you need to move the dip switch (pin that said JTAG_SEL) to opposite direction.

    This will allow the JTAG from 8301 board muxed to Hercules JTAG interface.

    Otherwise, you can not connect.

  • Henry,

    I have Access Port Designator and the Address as you have it. Testing the connection shows that all tests pass. My Configuration tab is as you have it. In the Edit Configuration menu under the Program tab, do you have a Project and Program define for /CortexR4, /DAP and /IcePick? I found that if there is a Project/Program defined for the DAP and IcePick that the program fails to load. Only the CortexR4 Device can have the Project Program define fields specified.

    The only difference that I notice between my screen and your screens is that in the Debug window, it shows the name of your target script while mine shows the name of the project. I tried to rename the configuration to the name of my target script, but CCS creates another configuration with the project name and uses that. Not sure if this is having an effect:

  • Henry Nguyen said:

    Oh Sean,

    i forgot to mention one thing.

    When you use XDS560, most likely you will connect to the DRV8301 base board because the motor control card you have do not have any connection for you.

    In this case, you need to move the dip switch (pin that said JTAG_SEL) to opposite direction.

    This will allow the JTAG from 8301 board muxed to Hercules JTAG interface.

    Otherwise, you can not connect.

    Yes, I know this. I would not be able to program the TMS without flipping that switch.
  • Sean,

    yes, that is strange.

    see snapshot of the program tab under Edit Configuration Menu.

    it loads fine for me using either DAP, CPU R4 as device but i don't have any name on the project for any device.

    Have you tried to create a new configuration file for xds560?  

  • Henry,

    Yes, I have created new configuration files both in the Projects and in the User Defined folder of View > Target Configurations. In the shot below, I managed to get the name of the project in the target window to show the name of the script, but this does not fix the issue. For future reference, this can be done by right-clicking the project, select Debug As... > Debug Configurations, then choose the name of the configuration in the left pane, and then click Debug.

  • Hi Sean,

    Here is another extra step that i did was to update the latest drivers from spectrum digital.  for some reason, i could not find any drivers from their website, but able to update thorugh CCS.

    Open CCS help.  Go to install new software;

    In the "work with" window, select "Spectrum Digital Emulation Updates..."

    Then, under the Name window, expand it out and update according to the instruction.

    I noticed that there is actually new update in C:\ti\ccsv5\ccs_base\common\uscif\sd560v2_updates where i see a new file sd_xds560v2_firmware_2.2.0.5 updated today and at some other locations as well.

    so, maybe this can be the case.  The reason I did not bring up because i am not sure if you have done this step when you started using your xds560 yet.

    if not, give it a try.

  • Hmmm that could be. The date modified for sd_xds560v2_firmware_2.2.0.5 is 9/9/2011. But, I have no available updates at http://support.spectrumdigital.com/ccs51/Updates. I have version 5.2.0.09 of Spectrum Digital Emulators installed. What Spectrum Digital repository are you looking at?

  • mine is version 6.0.999.2.  Again, i got my updated through CCS, so i am not even sure what's downloaded, etc... but it works for me..

    ; *****************************************************************************
    ;******************************************************************************
    ; Version section
    ;------------------------------------------------------------------------------
    [Version]
    Signature="$CHICAGO$"
    Provider=%S_Provider%
    DriverVer=03/25/2011,6.0.999.2
    CatalogFile.NTamd64=sdusb2em_ntamd64.cat
    Class=SDUSBEmulators
    ClassGUID={5EA49935-3617-468a-95C0-C2AAC353D35B}

    found this in sdusb2em.ini file in i386 as well as amd64 directories.

    ; *****************************************************************************
    ;******************************************************************************
    ; Version section
    ;------------------------------------------------------------------------------
    [Version]
    Signature="$CHICAGO$"
    Provider=%S_Provider%
    DriverVer=03/25/2011,6.0.999.2
    CatalogFile.NTx86=sdusb2em_x86.cat
    Class=SDUSBEmulators
    ClassGUID={5EA49935-3617-468a-95C0-C2AAC353D35B}

  • Henry,

    I've gotten the XDS560 to work. The issue was an incorrect version of CCS. I was using v5.1 before and I found that both the XDS100 and XDS560 work correctly with v5.4.

  • Sean,

    OK great.  Glad that works for you.  Just check my CCS and yes it is 5.3.  I overlooked this check.