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.

C2000 _c_int00 defined

Where is _c_int00 defined? Concerto f28m35h52c1 using CCS5.4.

Thanks,

Pat

 

  • from Accessing _c_int00

    Not using SYS/BIOS or DSP/BIOS

    If you are not using DSP/BIOS, you should be able to specify the address using the linker command file. The general idea is to put the boot module (where _c_int00 is defined) into an output section of its own, then allocate that output section to a specific memory address. For example for C5000:

    boot > 0x1234
    {
        -l rts55.lib<boot.obj>(.text)
    } 
    

    You can change the address 0x1234 to be whatever address that you want to put the code. Probably the start of your RAM would be a good place so that the linker doesn’t have problems allocating other objects around it.

    None of these links tell me anything about the location of the definition for the concerto, as far as I can tell. How should this procedure be constructed for the C2000?

    Thanks,

    Pat

     

  • Here is the data from my linker cmd file. I am trying to add a definite start up location for boot. How should this be done?

    MEMORY

    {

        CSM_ECSL_Z1     : origin = 0x00200000, length = 0x0024

        CSM_RSVD_Z1     : origin = 0x00200024, length = 0x000c

    RESETISR (RX) : origin = 0x00200030, length = 0x0010

    //, FILL=0xFFFFFFFF   /* Reset ISR is mapped to boot to Flash location */

        INTVECS (RX)    : origin = 0x00201000, length = 0x01B0

        FLASHLOAD (RX)  : origin = 0x00201200, length = 0x2E00  

    /* For storing code in Flash to copy to RAM at runtime */

    CINIT : origin = 0x00204800, length = 0x400

    // test

    //    FLASH (RX)      : origin = 0x00204000, length = 0x7BFD0

    // seperate flash for Download file storage

        FLASH_M (RX)    : origin = 0x00205000, length = 0x3000 

        FLASH_L (RX)    : origin = 0x00208000, length = 0x4000  

        FLASH_K (RX)    : origin = 0x0020C000, length = 0x4000  

        FLASH_J (RX)    : origin = 0x00210000, length = 0x10000

        FLASH_I (RX)    : origin = 0x00220000, length = 0x10000  

        FLASH_H (RX)    : origin = 0x00230000, length = 0x10000  

        FLASH_G (RX)    : origin = 0x00240000, length = 0x10000  

        FLASH_F (RX)    : origin = 0x00250000, length = 0x10000  

        FLASH_E (RX)    : origin = 0x00260000, length = 0x10000  

        FLASH_D (RX)    : origin = 0x00270000, length = 0x4000 

        FLASH_C (RX)    : origin = 0x00274000, length = 0x4000 

        FLASH_B (RX)    : origin = 0x00278000, length = 0x4000

        FLASH_A (RX)    : origin = 0x0027C000, length = 0x3F00

     

    //    FLASH (RX)      : origin = 0x00204000, length = 0x30000 //seperate section for NID, plus download boot stuff

    //    FLASH_DLOAD (RX) : origin = 0x00240000, length = 0x30000

    //

        CSM_RSVD_Z2     : origin = 0x0027FF00, length = 0x00DC

    /////

        CSM_ECSL_Z2     : origin = 0x0027FFDC, length = 0x0024

       

    //R.Liang: combine C0 and C1 into one memory C0_1

       

    //C0 (RWX)        : origin = 0x20000000, length = 0x2000

       

    //C1 (RWX)        : origin = 0x20002000, length = 0x2000

        C0_1 (RWX)        : origin = 0x20000000, length = 0x4000

       

        BOOT_RSVD (RX)  : origin = 0x20004000, length = 0x0FF8

       

    //combine C2 and C3 into single memory C2_3

       

    //C2 (RWX)        : origin = 0x200051B0, length = 0x0E50

       

    //C3 (RWX)        : origin = 0x20006000, length = 0x2000

        C2_3 (RWX)        : origin = 0x200051B0, length = 0x2E50 

    /////

       

        S0 (RWX)        : origin = 0x20008000, length = 0x2000

        S1 (RWX)        : origin = 0x2000A000, length = 0x2000

        S2 (RWX)        : origin = 0x2000C000, length = 0x2000

        S3 (RWX)        : origin = 0x2000E000, length = 0x2000

        S4 (RWX)        : origin = 0x20010000, length = 0x2000

        S5 (RWX)        : origin = 0x20012000, length = 0x2000

        S6 (RWX)        : origin = 0x20014000, length = 0x2000

        S7 (RWX)        : origin = 0x20016000, length = 0x2000

        CTOMRAM (RX)    : origin = 0x2007F000, length = 0x0800

        MTOCRAM (RWX)   : origin = 0x2007F800, length = 0x0800

    }

    /* Section allocation in memory */

    SECTIONS

    {

        .intvecs:   > INTVECS

        .resetisr:  > RESETISR

       

    .cinit: > CINIT

       

    .text   :   > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H

       

    .const  :   > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H

       

    /*.cinit  :   > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H */

       

    .pinit  :   > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H

    .dload : > FLASH_G | FLASH_F |FLASH_E | FLASH_D | FLASH_C | FLASH_B | FLASH_A

        .vtable :   > C0_1

       

    .data   :   > C0_1

       

    .bss    :   > C2_3

       

    .sysmem :   > C0_1

       

    .stack  :   > C0_1

       

        .z1secvalues  :   >  CSM_ECSL_Z1

        .z1_csm_rsvd  :   >  CSM_RSVD_Z1

        .z2secvalues  :   >  CSM_ECSL_Z2

        .z2_csm_rsvd  :   >  CSM_RSVD_Z2

       

       

    GROUP

        {

          ramfuncs

    {

    -

    l F021_API_CortexM3_LE.lib

    }     

         }        

    LOAD = FLASHLOAD,

                           

    RUN = C0_1,

                           

    LOAD_START(RamfuncsLoadStart),

                           

    LOAD_SIZE(RamfuncsLoadSize),

                           

    LOAD_END(RamfuncsLoadEnd),

                           

    RUN_START(RamfuncsRunStart),

                           

    RUN_SIZE(RamfuncsRunSize),

                           

    RUN_END(RamfuncsRunEnd),

                           

    PAGE = 0

       

       

    GROUP : > MTOCRAM

        {

            PUTBUFFER 

            PUTWRITEIDX

            GETREADIDX 

        }

       

    GROUP : > CTOMRAM

        {

            GETBUFFER :

    TYPE = DSECT

            GETWRITEIDX :

    TYPE = DSECT

            PUTREADIDX :

    TYPE = DSECT

        }   

    }

    __STACK_TOP = __stack + 256;

     

     Thanks,

    Pat

     

  • It appears that I need to add

    rtsv7M3_T_le_eabi.lib : boot.obj

    to my cmd file and assign a fixed location for the boot module. My approach was to place this module at the end of FLASH_J:

        FLASH_J (RX)    : origin = 0x00210000, length = 0xff00

    Then create a section for the CM3 boot module:

    BOOT_CM3 (RX) : origin = 0x0021ff00, length = 0x100

    Then create a GROUP for the module:

       

    GROUP : > BOOT_CM3

        {

        -l rtsv7M3_T_le_eabi.lib : boot.obj //(.text)

        }

    This gives the following error:

    "C:/Texas Instruments/PLUS_CCU_V6_2/plus_ccu_cm3/dsp_c28x/cfg/F28M35H52C1_m3_FreeRTOS.cmd", line 140: error #10026-D:

       expecting output section, GROUP, or UNION instead of "-"

    Any suggestions, please?

    Thanks,

    Pat