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/TMS320C5545: Is the v8.1.x tools compatible with the c55x 4.4.1 CGT?

Part Number: TMS320C5545

Tool/software: Code Composer Studio

Hello All,

This is a bit of a cross-post - but I thought I'd go ahead:

...Have another question if that's OK - 

In the 7.4.x tools (CCS IDE) - I've downloaded the 4.4.1 CGT for the c55x, and an older project (circa CCS v5, and v6) - is able to build OK. I tried this same procedure in version 8.1 of the CCS IDE, and the project doesn't stop at main when loaded. I haven't looked at this in any great detail yet - but just wanted to ask if there's been any testing with the c55x tools and the latest released CCS.

So, have the v8.1.x tools been thoroughly tested with the latest 'c55x (v4.4.1 for us not on Macs)?

Thanks In Advance,
John W.

  • HI John,
    C55x is still supported and tested... though likely more limited than some of the other more current devices. I will confirm when I get back to the office.

    As for the issue you are seeing with 8.1, if you load a program built with CCSv5/6 into 8.1, does it work as expected?

    Thanks
    ki

  • Ki,

    I'm able to build/run OK with 7.4.0, but when I have tried with 8.1.0, the build doesn't load. I'm not sure just yet what's going on - but I'll take another look with v8.x and let you know. I just wanted to ask in case there are known incompatibilities.

    Thanks,
    John
  • Ki,

    Also - does the 7.4.x and 8.1.x debuggers recognize the DBSTAT register operation of the c55x series? I seeing some things where I don't think so.

    Thanks,
    John
  • John - I confirmed that we still do some testing with C55x. Regarding this issue you are hitting, can you provide a reproducible test case? One that works with v6 butnot with v8?
  • Ki,

    I've posted a project to Github - I think the best thing to do is for you to try and run it with the latest tools so you can see what's happening:

    The URL is here:

    Try to make sure the following is loaded:

    EZDSP5535.ccxml and ezdsp5535.gel files in the debugger - you'll see what I'm talking about.

    The project is for the eZdsp 'c5535 - hopefully you can locate one around there - I would imagine there would be one in the test/compatibility lab for the TI IDE and compilers.

    Thanks,
    John

    URL - just in case:  github.com/.../eZdsp_DBG

  • Thanks John. I have an ezdsp5535. With CCSv8.1, I tried loading several of executables in .\eZdsp_C55x_FreeRTOS_Port-master\eZdsp_DBG\eZDSP_5535_Files\ccsws2\test\c5535_bsl_revc\ezdsp5535_v1\tests

    They all seem to halt at main. Is there a particular exeuctable you are loading?

    Thanks
    ki
  • Ki,

    OK - that's interesting.

    Can you please try these two workspaces:

    eZdsp_DBG/->eZDSP_5535_Files->ccsws2

    eZDSP->eZDSP_5535_Files->ccsws2

    I can't get the debugger to start without doing almost everything manually - using the EZDSP5535.ccxml and ezdsp5535.gel files.

    I had forgotten there were any other workspaces in that repository. But if you loaded them with no problem then I'll look at those also - but I need you to try the two above - with the emphasis on the first one.

    Once you get past main and run; you have to press the switches on the eZdsp board a few times and then the LED's will all blink continuously.

    The readme.md in the repository has instructions on which workspace to grab - I thought anyone trying this would grab those workspaces first.  

    Thanks,
    John

  • Hi John,
    I used both workspaces and loaded the test.out program for each one. It auto-runs and halts at main.

    Can you confirm that the auto-run option is set to the default behavior (auto-run to main)?

    Thanks
    ki
  • Ki,

    Yes, auto run to main is what should happen per the settings in the debugger set-up file.

    Can you run beyond that?  If you press SW1 and SW2, and run the demo, you should see the LEDs blink.

    Does the debugger ever stop; requiring you to hit the run button again?

    Also, when I load - I have to manually connect target and then I have to manually load the file.

    How are you doing this with the v8.1 tools?  I can only get what you're talking about to work if going back to the v7.4.x tools using the xml and gel files that come with the eZdsp 5535.

    The version 8.1 tools does not have a built in target for the eZdsp 5535 like in the version 7.4.x tools, so I'd like to know how you're doing that.

    Thanks,
    John

  • Yes, the demo appears to run. Eventually the debugger does stop, halted at vErrorChecks after all 4 LEDs are lit up in different colors.

    How I am running the demo:

    i am using the EZDSP5535.ccxml file in the project to start a manual debug session. I manually connect to the target and load the program.

    CCS 8.1 has an EZDSP5535 option. I created one from scratch and use that one successfully also.

    I tried the "Debug" button also. I noticed that the 'test' debug launch configuration has the option for auto-connect disabled. Is that intentional? The default for project based launch configurations is to have it enabled. If it was not intential, you may want to delete the launch config and let the debugger generate a new one.

    Thanks

    ki

  • Ki,

    When I start v8.1 - I do not show any EZDSP5535 option - there is one for the 5505.

    Can you take a screen shot of that also and post? When I look at the project settings that does not show up for me.

    And if that does show up for you and not for me - then I'd like to know why that's happening.

    Thanks,
    John
  • In CCSv8.1.0:

    From target configuration editor:

    In project settings:

    What are the options you see for both methods?

    Thanks

    ki

  • Ki,

    OK - but I believe that's using the file I supplied vs. what comes with the compiler/IDE - that's what I meant - but, let me try that real fast. Not on my dev machine at the moment but I'll be back to you in around 15 min.

    I didn't realize that would work.

    Thanks,
    John
  • The options that appear in the board/device list is determined by if the device.board xml file exists for it in CCS. What existing ccxml file you imported into your workspace/project would not matter. If there was no CCS support for it, then those ccmxl files you imported would simply not work at all (CCS would complain that 'EZDSP5535' is unrecognized).
  • Ki,

    OK - but I just tried to reproduce what you did and it isn't working for me - let me try again - then I'll post my screen shots.

    We used to call this "works for you, not for me" - means obviously our set-ups aren't the same.

    Thanks,
    John

  • Please try cleaning the CCS cache with the -clean argument, and also try cleaning your workspace:

    software-dl.ti.com/.../ccs_troubleshooting.html
  • Ki,

    EZDSP5535 does not show up for me.

    So, why is happening?  Works for you, not for me.

    Thanks,
    John

  • I can probably explain why it is happening. I will bet that the ezdsp5535.xml file is missing in your CCSv8 installation directory. It *should* be in:

    <CCSv8 INSTALL DIR>\ccsv8\ccs_base\common\targetdb\boards

    Why is it missing for you? I am going to guess that since the board is from Spectrum Digital, you need to have the Spectrum Digital drivers installed, in addition to C5000 device support installed. I'm guessing you did the latter but not the former?

  • Ki,

    OK - cleaning didn't really work - so I'm restoring my workspace now.

    I (previously) completely reinstalled all of the 7.4.x tools - I did not have to reinstall anything from Spectrum Digital, and the 7.4.x IDE picked up everything OK - so, not sure about this at the moment - but let me see if I can get the EZDSP5535 listed as a target under v8.1.

    Thanks,
    John
  • Ki,

    OK - I copied over the xml file from the 7.4.x install dir that I recently just reinstalled; plus the .gel file that was in the emulation directory, so now that's showing up as an option in v8.1. I wasn't 100% sure these files would be compatible with previous versions; but this is good to know.

    Otherwise we're seeing similar behavior in the debugger, I think that is due to maybe what I'm doing with DBSTAT, still not 100% sure about that - but at least we've got this far; and it explains why I thought I was seeing some differences.

    I can start another thread - but there's an update for the c2000 tools that's been trying to install for a couple of days that fails - do you know anything about that - it's tried several times and has failed:

    An error occurred while collecting items to be installed
    session context was:(profile=epp.package.cpp, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
    No repository found containing: org.eclipse.update.feature,com.ti.c2000.support.win32,4.2.5.0
    No repository found containing: binary,com.ti.c2000.support.win32_root,4.2.5.0

    Maybe there's a post about that already.

    Thanks,
    John
  • John Westmoreland43 said:
    OK - I copied over the xml file from the 7.4.x install dir that I recently just reinstalled; plus the .gel file that was in the emulation directory, so now that's showing up as an option in v8.1. I wasn't 100% sure these files would be compatible with previous versions; but this is good to know.

    I'm pretty sure that the xml file in question comes from the spectrum digital install package. But since the emulation driver being used is TI's XDS100, just copying the gel and xml file should be enough.

    John Westmoreland43 said:
    Otherwise we're seeing similar behavior in the debugger, I think that is due to maybe what I'm doing with DBSTAT, still not 100% sure about that - but at least we've got this far; and it explains why I thought I was seeing some differences.

    "Otherwise we're seeing similar behavior in the debugger" - does that mean that the test example is halting for you at main now as it does for me?

    John Westmoreland43 said:
    I can start another thread - but there's an update for the c2000 tools that's been trying to install for a couple of days that fails - do you know anything about that - it's tried several times and has failed:

    An error occurred while collecting items to be installed
    session context was:(profile=epp.package.cpp, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
    No repository found containing: org.eclipse.update.feature,com.ti.c2000.support.win32,4.2.5.0
    No repository found containing: binary,com.ti.c2000.support.win32_root,4.2.5.0

    Maybe there's a post about that already.

    Did you see the section in the troubleshooting guide?

    See #5 of the below link:

    http://processors.wiki.ti.com/index.php/Troubleshooting_CCSv7#Update_features

    Thanks

    ki

  • Ki,

    If you want to try looking at this:
    github.com/.../ccsws2

    I fixed an issue with DBSTAT and ST0_55 which seemed to fix the odd behavior (besides not having the .xml file to start with).
    You are welcome to verify that - the demo should run and blink the LEDs once it's loaded and you press SW1 and SW2 a couple of times as requested on the OLED display.

    The repository was evidently offline when the update message came; it eventually worked .

    Thanks,
    John
  • Looks good John. Demo is working well.

    ki
  • Ki,

    Thanks - I appreciate you doing this.

    I looked back at some of my posts - some of these are awhile ago - one of the issues with the 'c55x architecture is dealing with DBSTAT - it's on the Sys Stack - and you have to be careful how that is handled - it wasn't crystal clear to me how that should have been done - but based on your answer I think at least that part is OK. Also, since the architecture uses two stacks, and there are at least 3 different stack modes not to mention the two different forms of assembly options - mnemonic and algebraic - which makes it interesting - I really like the mnemonic and hope that doesn't go the way of the dinosaurs.

    Since this has been an on-again/off-again effort by me; I wasn't 100% sure the latest CCS IDE was compatible with the 4.4.1 version of the C5000 CGT; and I do appreciate the time you put in helping me - the .xml - not the .ccxml - is what I was missing. The tools don't react too well when you have one and not the other - and when the "xml" is referred to - it's easy to get the two confused.

    Since the 7.4 tools worked OK - the obvious initial thought was something was incompatible. So, you've definitely helped to prove that's still OK - but I have to wonder if TI will still support the 'c5x in the future.

    This was an interesting exercise; with the dual-stack architecture and the mnemonic assembly language option plus the options for 'fast-stack' vs. 'slow-stack', etc. - each one of these adds an order of complexity that may not be immediately obvious when working on a processor of this type.

    Thanks!
    John W.
  • Hello Ki,

    I was wondering if I could ask this again - I had asked a while ago - maybe before TI decided to deprecated the 'c55x CGT; but, is it possible to get the definitions of the different states of DBSTAT? I can see when I'm running it appears to be 0x001F - but it would be great to verify what that means. I've been fairly careful to make sure it doesn't get changed accidentally; but I think you may be in agreement now that when it does get set to an incorrect value the debugger will behave non-predictably. I think another valid state is 0x005F.

    Can I get the DBSTAT state-diagram, definitions, etc?

    Thanks,
    John
  • Hi John,
    This is best answered by the experts in the device forum. I see that you have posted a related thread which has been moved to the approproate forum
    e2e.ti.com/.../731530

    Thanks
    ki
  • Ki,

    It's blurry where this question belongs. Since DBSTAT affects debugging; seems it's more appropriate in this forum since support for the 'c55x series regarding the CGT, etc. is or has been deprecated. I'd rather not move this question to where it'll be summarily ignored.

    The CPU advisory question is related; no question; but has anyone answered it yet?

    Also - I'm asking for valid DBSTAT values - which is a legitimate request.  And not the same question.

    I know these values are valid;
    0x001F  ; single-step or run?
    0x005F  ; single-step or run?
    but that's about it.

    Can you please give me a list of valid values?

    Anyone at this point that flippantly answers:  Don't touch it - has not actually done any actual debugging with the 'c55x family.  Look at Sysstack.  It can't
    be ignored.  When returning from an ISR using the large memory model while in C54_STK mode; it must be set correctly.

    I'm certain the DSP/BIOS tools set it - this will be a matter of looking at that and letting me know what the valid states are for DBSTAT.  Seems like that is a fairly simple request.

    Also, it appears to me the devices forum has turned a bit nebulous since it's an aggregation of so many device families now.

    Thanks,
    John W.

  • John Westmoreland43 said:
    It's blurry where this question belongs. Since DBSTAT affects debugging; seems it's more appropriate in this forum since support for the 'c55x series regarding the CGT, etc. is or has been deprecated. I'd rather not move this question to where it'll be summarily ignored.

    The CPU advisory question is related; no question; but has anyone answered it yet?

    The device forum is the best place to start regarding DBSTAT. Looks like the question was answered - CPU_119 has not been addressed and it appears there are no plans to address it. Hence any fix would have to come with a workaround in the debugger. I will file a bug for this.

    As for the explanation of the DBSTAT values, I will forward this to the correct folks to answer.

    Thanks

    ki

  • Ki,

    If there could be a workaround in the debugger that would be great. Since I'm working on a project that deals with the stack; it is almost impossible to make progress if there's a problem with DBSTAT. So, thanks for filing a bug on that.

    And, looking forward to getting the DBSTAT settings. I think setting it to 0x0000 initially isn't a good idea either; but I've tried that when setting the initial value.

    Thanks!
    John
  • The DBSTAT appears to be a typo in the document.  The register is DBGSTAT and has the following definitions in the CCS driver code:

    #define DBGSTAT_ADDR ((TRG_ADDR)0x000800) /* DBGSTAT byte address */

    #define DBGSTAT_IDLE_FLAG  ((UINT32)0x00008000) /* 15 1=Device in IDLE state*/
    #define DBGSTAT_BRK        ((UINT32)0x00004000) /* 14 1=HW Break, STOPPED */
    #define DBGSTAT_BRK_PEND   ((UINT32)0x00002000) /* 13 1=HW Break pending */
    #define DBGSTAT_ANASTOP    ((UINT32)0x00001000) /* 12 1=Analysis, STOPPED */
    #define DBGSTAT_ESTOP1     ((UINT32)0x00000800) /* 11 1=ESTOP1, STOPPED */
    #define DBGSTAT_ESTOP0     ((UINT32)0x00000400) /* 10 1=ESTOP0, STOPPED */
    #define DBGSTAT_HPI        ((UINT32)0x00000200) /* 9 HPI bit - see chap 6 */
    #define DBGSTAT_IDS        ((UINT32)0x00000100) /* 8 IDS bit - see chap 6 */
    #define DBGSTAT_EXSM_MASK  ((UINT32)0x000000C0) /* 7:6 EXSM State */
    #define DBGSTAT_EXSM_IDBG  ((UINT32)0x000000C0) /* 7:6 IDBG */
    #define DBGSTAT_EXSM_IDS   ((UINT32)0x00000080) /* 7:6 IDS */
    #define DBGSTAT_EXSM_DSUSP ((UINT32)0x00000040) /* 7:6 DSUSP */
    #define DBGSTAT_EXSM_EXE   ((UINT32)0x00000000) /* 7:6 EXE */
    #define DBGSTAT_FXWOK      ((UINT32)0x00000020) /* 5 For CPU use only */
    #define DBGSTAT_DFC_MASK   ((UINT32)0x0000001F) /* 4:0 Current DFC value */

    Note that this is a memory mapped register.  It may be writable, but the driver only reads the register.  And the driver only examines the following bits: DBGSTAT_BRK, DBGSTAT_ANASTOP, DBGSTAT_ESTOP1, DBGSTAT_ESTOP0, and DFC_MASK. There appears to be no reason you need to set these bits. The driver is only using them to determine what event caused the core to halt and to retrieve the current debug frame.

  • Edward,

    Please give me the memory mapped address of DBSTAT for the 'c55x family.

    Thanks,

    John W.

  • #define DBGSTAT_ADDR ((TRG_ADDR)0x000800) /* DBGSTAT byte address */
  • Thanks Edward,

    I am away from my development system right now; but I will definitely look at this later today.

    Thanks Again,
    John W.
  • Edward,

    I looked at this in the debugger - for the c55x family, the DBSTAT address is not 0x800.  

    For the c2000 family, it appears to be correct - I verified that on one target - 0x800 on the TMS320F28069 appears to be DBGSTAT.

    I ran two different targets for the c55x - didn't see any correlation there.

    Can you please check that; I'm very interested to get the DBSTAT address for the c55x if that is actually memory mapped; which I've been told it was not.

    Thanks,
    John

  • Ah, looks like there is a difference between the C28x and C55x families. In the C28x, the register is mapped to the data page.  In the C55x, the register is mapped to the I/O page. But the address and bit definitions used in the two CCS drivers are the same.  

  • Hi John, Edward,
    Just checking the status of this thread to see if it can be closed. Is there any open items left to discuss? If not, i would like to close it

    Thanks
    ki
  • Edward/Ki,

    Is there any way to verify the DBSTAT contents since it's mapped to I/O? When I try, the debugger is throwing an exception. Note I'm using the v5.5x tools mostly for this activity now since I go back and forth from the simulator to the tools (actual). I suppose I can look with the latest IDE but I don't think the behavior will be any different trying to make sense of I/O.

    Thanks,
    John
  • I checked it out in CCS just looking into the Memory Browser.  You can set the address and choose the page in the pull-down menu to select the I/O page. 

  • Since this thread has deviated from the original subject, I will close this thread.

    Thank you