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/TMS320F28035: Issue with CCS V.7 Debugger

Part Number: TMS320F28035
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

Hi, All
I need help from the TI team, becauase a I have issue with the CCS V.7 and Experimenter kit to TMS320F28035.
I have a program where I did set up the epwm module to control a three phase bridge. In this program I change the width of pulse using the epwm interrupts. My subrutine function fine. As a main program I have a few instructions included a adc conversion. The issue is that when I execute the program using the debugger never enter to main program. Only when I execute the program step by step I can see that the control pass for the main subrutine.

Thank you very much.

  • Hi,

    Are you running this program from FLASH or RAM? Make sure that your project is configured correctly for either option.

    Regards,
    Ozino
  • Hi Ozino
    I´m using the frame of the Lab exercise 7 of C2000, Piccolo Workshop, revision 2.1. For my program. This exercise is running en flash memory.
    I need advance in my project and need develop my main program to control several electronic converters.

    Thank you very much

    Sebastián
  • Sebastián,

    If you are running your project from flash with the emulator connected, be sure to set the 'EMU Boot Mode Select' to 'EMU_BOOT_FLASH' using the CCS Script. This will use the debugger (CCS) to load values into EMU_KEY and EMU_BMODE so that the bootloader will jump to "FLASH" at address 0x3F7FF6. See lab 10 exercise for details.

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken
  • Hello Ken
    I reviwed the lab 10 sesion in the C2000 piccolo workshop, specially in the flash programming section. The only difference in relation with the flash programming was the codestart instruction, I modified such instruction in my program. But the issue is the same. I send my .cmd file.

    I don´t understand the behavior of the experimenter kit in this case.

    Thank you very much.

    Sebastián

    /**********************************************************************************

    * File: Lab_5_6_7.cmd -- File for Lab 5, 6 and 7 (Boot to SARAM boot mode)

    * Devices: TMS320F28035

    * Author: Technical Training Organization (TTO), Texas Instruments

    * History:

    *   09/15/09 - original

    **********************************************************************************/

     

    MEMORY

    {

    PAGE 0:   /* Program Memory */

       BEGIN_M0       : origin = 0x000000, length = 0x000002     /* Part of M0SARAM. Used for "Boot to M0" bootloader mode. */

       L0SARAM         : origin = 0x008000, length = 0x000800     /* L0 SARAM, CSM secure */

       L3DPSARAM       : origin = 0x009000, length = 0x001000     /* L3 DPSARAM, CSM secure, CLA Prog RAM */

       DEVICE_CAL     : origin = 0x3D7C80, length = 0x000040     /* Device_cal function in reserved memory */

       IQTABLES       : origin = 0x3FE000, length = 0x000B50     /* Part of Boot ROM */

       IQTABLES2       : origin = 0x3FEB50, length = 0x00008C     /* Part of Boot ROM */

       IQTABLES3       : origin = 0x3FEBDC, length = 0x0000AA     /* Part of Boot ROM */

       BOOTROM         : origin = 0x3FF27C, length = 0x000D44     /* Boot ROM */

       RESET           : origin = 0x3FFFC0, length = 0x000002     /* part of Boot ROM */

       INFLASH         : origin = 0x3E8000, length = 0x00FF80       /* SIR MMMMMMM 500 values */

       BEGIN_FLASH     : origin = 0x3F7FF6, length = 0x000002     /* Part of FLASH Sector A. Used for "Jump to flash" bootloader mode. */

     

    PAGE 1 :   /* Data Memory */

       M0SARAM         : origin = 0x000002, length = 0x0003FE     /* M0 SARAM */

       M1SARAM         : origin = 0x000400, length = 0x000400     /* M1 SARAM */

       L1DPSARAM       : origin = 0x008800, length = 0x000400     /* L1 DPSARAM, CSM secure, CLA Data RAM 0 */

       L2DPSARAM      : origin = 0x008C00, length = 0x000400     /* L2 DPSARAM, CSM secure, CLA Data RAM 1 */

     

    }

     

    SECTIONS

    {

    /*** Compiler Required Sections ***/

     

    /* Program memory (PAGE 0) sections */

    //   .text             : > L0SARAM,               PAGE = 0

       .text             : > INFLASH,               PAGE = 0

    //   .cinit           : > L0SARAM,               PAGE = 0

    //   .const           : > L0SARAM,               PAGE = 0

       .cinit           : > INFLASH,               PAGE = 0

       .const           : > INFLASH,               PAGE = 0

    //   .econst           : > L0SARAM,               PAGE = 0

       .econst           : > INFLASH,               PAGE = 0

    //   .pinit           : > L0SARAM,               PAGE = 0

            .pinit                  : > INFLASH,                           PAGE = 0

       .reset           : > RESET,                 PAGE = 0, TYPE = DSECT /* We are not using the .reset section */

    //   .switch           : > L0SARAM,               PAGE = 0

       .switch                      : > INFLASH,                           PAGE = 0

     

     

     

    /* Data Memory (PAGE 1) sections */

       .bss             : > M0SARAM,               PAGE = 1

       .ebss             : > M0SARAM,               PAGE = 1

       .cio             : > M0SARAM,               PAGE = 1

       .stack           : > M1SARAM,               PAGE = 1

       .sysmem           : > M1SARAM,               PAGE = 1

       .esysmem         : > M1SARAM,               PAGE = 1

     

    /*** User Defined Sections ***/

       codestart         : > BEGIN_FLASH,           PAGE = 0               /* Used by file CodeStartBranch.asm */

       STABLA               : load = INFLASH, PAGE = 0, ALIGN(2)           /* SIR */

    //   .const                     : load = INFLASH, PAGE = 0, ALIGN(2)           /* SIR */

    }

     

    /******************* end of file ************************/

     

  • Sebastián,

    Your statement "The only difference in relation with the flash programming was the codestart instruction..." is not true. There are other differences between the RAM linker .cmd file and the flash linker .cmd file. Please compare them side-by-side. Notice that your .cmd file is missing the section for SecureRamFuncs. You will also need to copy all flash sections that need to run from RAM using memcpy() from RTS library. Open Main_10.c and you will find the memcpy(). Also, do not forget to add the Flash.c file to the project.

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken
  • Sebastian,

    To add to Ken's previous statement, if you are not sure what else is needed in your flash linker cmd file. Please you use the template linker command files available in C2000Ware under device_support.

    Addtionally, please reference this appnote that walks through the steps of running an application from internal flash memory. http://www.ti.com/lit/an/spra958l/spra958l.pdf

    Regards,

    Ozino

  • Hello Ken

    I modified my program with yours advices. I included the memcopy, the flash. c. Now I can see the CCS debugger running in my main subrutine, because I put a test signal. But I can´t see, in runtime, the actualization of the result register of the adc converter.
    By the moment I can follow my system design.

    Thankyou very much for your aid

    Sebastián.