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.

Using CSSv4 to connect to a running process

Other Parts Discussed in Thread: TMS320F28335

This seems like a fundamental issue, but I can't find how to do this in the documentation.  Perhaps I'm using the wrong terminology.  First, some details on my environment.  I am working on an embedded system consisting of a TMS320F28335 DSP that communicates to a PC-104 x86 card via the PC-104 ISA bus.  I have a Spectrum Digital XDS510 USB emulator pod.  With CCSv4, I have no problems with normal program development and debugging.  I have a situation where the DSP stops communicating with the PC-104 about every tenth cold power up.  This seems to be a critical timing issue because any code changes on the DSP or PC-104 makes the problem disappear, so I can't even use printfs to diagnose it.  Since it involves a cold power up, I can't use normal emulation process to debug it.

Once the unit gets into this state, I need to connect the emulator to debug.  I've tried many settings, but every time the emulator connects to the target, it resets it.  I need to hot connect to the DSP and then pause it so I can determine what the problem is.  It is possible to do this in CCSv4?

  • Hi Robert

    Robert Murrell said:
     I've tried many settings, but every time the emulator connects to the target, it resets it.

    If you are using the default startup GEL file for the F28335 (f28335.gel), it will call a CPU reset on target connect unless the device is in real-time mode:

    OnTargetConnect()
    {
        if (GEL_IsInRealtimeMode())   /* If in real-time-mode */
        {
        }
        else    /* Put device in C28x mode */
        {
             C28x_Mode();
        }
        F28335_Memory_Map();            /* Initialize the CCS memory map */

    /* Check to see if CCS has been started-up with the DSP already */
    /* running in real-time mode.  The user can add whatever        */
    /* custom initialization stuff they want to each case.          */

        if (GEL_IsInRealtimeMode())     /* Do real-time mode target initialization */
        {

        }
        else                            /* Do stop-mode target initialization */
        {
            GEL_Reset();                /* Reset DSP */
        }

    }

    If not in real-time mode, you can comment out that call (or modify how it is called) to prevent the CPU reset from happening every time.

    Hope this helps

    ki

  • Thanks for the quick response.  Commenting out the reset works.