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.

how to add memory segment in ccs v6?

Other Parts Discussed in Thread: SYSBIOS

In previos work, CCS v3.3 was used but now I want to change CCS version v3.3 to v6.

in v3.3, if I click 'insert MEM' and type 'base' and 'len', I can add memory segment.

but in CCS v6, I can not add memory segment. It is 'add' button but there is no other menu.

OS : Win7 x64

CCS Version : 6

SYS/BIOS : 6_40_02_27

xdctools : 3_30_01_25_core

board : ZOOM OMAP-L138 EVM

how to add memory segment in ccs v6?

  • Hi Hyungkeun Seo,

    You can manually add memory segments in the linker.cmd file.

     

    Regards,

    Shankari

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.
    --------------------------------------------------------------------------------------------------------

  • Thanks for responce.

    you propose add segments inthe linker. cmd file. it means that window of sys/bios can not add memory segment?

  • I test non bios project. and base linker command file works well.

    =======================================================================
    MEMORY
    {
    #ifdef DSP_CORE      /* DSP exclusive memory regions */

        DSPL2ROM     o = 0x00700000  l = 0x00100000  /* 1MB L2 DSP local ROM */
        DSPL2RAM     o = 0x00800000  l = 0x00040000  /* 256kB L2 DSP local RAM */
        DSPL1PRAM    o = 0x00E00000  l = 0x00008000  /* 32kB L1 DSP local Program RAM */
        DSPL1DRAM    o = 0x00F00000  l = 0x00008000  /* 32kB L1 DSP local Data RAM */

    #endif

        SHDSPL2ROM   o = 0x11700000  l = 0x00100000  /* 1MB L2 Shared Internal ROM */         
        SHDSPL2RAM   o = 0x11800000  l = 0x00040000  /* 256kB L2 Shared Internal RAM */      
        SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000  /* 32kB L1 Shared Internal Program RAM */
        SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000  /* 32kB L1 Shared Internal Data RAM */      
        EMIFACS0     o = 0x40000000  l = 0x20000000  /* 512MB SDRAM Data (CS0) */
        EMIFACS2     o = 0x60000000  l = 0x02000000  /* 32MB Async Data (CS2) */
        EMIFACS3     o = 0x62000000  l = 0x02000000  /* 32MB Async Data (CS3) */
        EMIFACS4     o = 0x64000000  l = 0x02000000  /* 32MB Async Data (CS4) */
        EMIFACS5     o = 0x66000000  l = 0x02000000  /* 32MB Async Data (CS5) */
        SHRAM        o = 0x80000000  l = 0x00020000  /* 128kB Shared RAM */
        DDR2         o = 0xC0000000  l = 0x20000000  /* 512MB DDR2 Data */

    #ifndef DSP_CORE     /* ARM exclusive memory regions */

        ARMROM       o = 0xFFFD0000  l = 0x00010000  /* 64kB ARM local ROM */
        ARMRAM       o = 0xFFFF0000  l = 0x00002000  /* 8kB ARM local RAM */

    #endif
    }

    SECTIONS
    {
        .text          >  SHRAM
        .stack         >  SHRAM
        .bss           >  SHRAM
        .cio           >  SHRAM
        .const         >  SHRAM
        .data          >  SHRAM
        .switch        >  SHRAM
        .sysmem        >  SHRAM
        .far           >  SHRAM
        .args          >  SHRAM
        .ppinfo        >  SHRAM
        .ppdata        >  SHRAM
       
        /* TI-ABI or COFF sections */
        .pinit         >  SHRAM
        .cinit         >  SHRAM
       
        /* EABI sections */
        .binit         >  SHRAM
        .init_array    >  SHRAM
        .neardata      >  SHRAM
        .fardata       >  SHRAM
        .rodata        >  SHRAM
        .c6xabi.exidx  >  SHRAM
        .c6xabi.extab  >  SHRAM
    }

    =======================================================================

    then I test sysbios project adding linker command file. and I turn off all button involved in memory at window of sysbios. but error occurred.

    I change the linker command file. in order to match same variable name.

    ===============================================================================

    MEMORY
    {
    #ifdef DSP_CORE      /* DSP exclusive memory regions */

        DSPL2ROM     o = 0x00700000  l = 0x00100000  /* 1MB L2 DSP local ROM */
        DSPL2RAM     o = 0x00800000  l = 0x00040000  /* 256kB L2 DSP local RAM */
        DSPL1PRAM    o = 0x00E00000  l = 0x00008000  /* 32kB L1 DSP local Program RAM */
        DSPL1DRAM    o = 0x00F00000  l = 0x00008000  /* 32kB L1 DSP local Data RAM */

    #endif

        //SHDSPL2ROM   o = 0x11700000  l = 0x00100000  /* 1MB L2 Shared Internal ROM */
        //SHDSPL2RAM   o = 0x11800000  l = 0x00040000  /* 256kB L2 Shared Internal RAM */
        SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000  /* 32kB L1 Shared Internal Program RAM */
        SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000  /* 32kB L1 Shared Internal Data RAM */      
        //EMIFACS0     o = 0x40000000  l = 0x20000000  /* 512MB SDRAM Data (CS0) */
        //EMIFACS2     o = 0x60000000  l = 0x02000000  /* 32MB Async Data (CS2) */
        //EMIFACS3     o = 0x62000000  l = 0x02000000  /* 32MB Async Data (CS3) */
        //EMIFACS4     o = 0x64000000  l = 0x02000000  /* 32MB Async Data (CS4) */
        //EMIFACS5     o = 0x66000000  l = 0x02000000  /* 32MB Async Data (CS5) */
        L3_CBA_RAM  o = 0x80000000  l = 0x00020000  /* 128kB Shared RAM */
        DDR    o = 0xC3E00000  l = 0x000FFF80  /* 512MB DDR2 Data */

    #ifndef DSP_CORE     /* ARM exclusive memory regions */

        ARMROM       o = 0xFFFD0000  l = 0x00010000  /* 64kB ARM local ROM */
        ARMRAM       o = 0xFFFF0000  l = 0x00002000  /* 8kB ARM local RAM */

    #endif
    }

    SECTIONS
    {
        .text          >  L3_CBA_RAM
        .stack         >  L3_CBA_RAM
        .bss           >  L3_CBA_RAM
        .cio           >  L3_CBA_RAM
        .const         >  L3_CBA_RAM
        .data          >  L3_CBA_RAM
        .switch        >  L3_CBA_RAM
        .sysmem        >  L3_CBA_RAM
        .far           >  L3_CBA_RAM
        .args          >  L3_CBA_RAM
        .ppinfo        >  L3_CBA_RAM
        .ppdata        >  L3_CBA_RAM
       
        /* TI-ABI or COFF sections */
        .pinit         >  L3_CBA_RAM
        .cinit         >  L3_CBA_RAM
       
        /* EABI sections */
        .binit         >  L3_CBA_RAM
        .init_array    >  L3_CBA_RAM
        .neardata      >  L3_CBA_RAM
        .fardata       >  L3_CBA_RAM
        .rodata        >  L3_CBA_RAM
        .c6xabi.exidx  >  L3_CBA_RAM
        .c6xabi.extab  >  L3_CBA_RAM
    }

    ===============================================================================

    I think that memory overlap occur between cmd file and sysbios.

    Could you tell me how to delete sysbios base memory segments or how to add cmd file properly in using sysbios?

  • Hi Seo,

    Could you tell me how to delete sysbios base memory segments or how to add cmd file properly in using sysbios?

    Sorry, You can use the Memory section manager itself to add the memory segments as you use the sysbios based project. Better to ignore using the linker cmd file.

    I think, you have to configure the cfg script for memory management.

    Also try to add your platform xdc informations in cfg script.

    Ex:

    /*

    * Configure SysMin for System_printfs because SysStd cannot be used when

    * calling System_printf from Hwis and Swis

    */

    System.SupportProxy = SysMin;

    var platformInstance0 = xdc.lookup('ti.platforms.evmOMAPL138.Platform.Instance#0');

    platformInstance0.codeMemory = "DDR";

  • I try to edit 'cfg' file and occur 'unsupportted operation'.

    Why is it so hard to add memory segment?

  • Hi,

    To support further on this request, we will move this post to right forum

    Thanks & regards,

    Sivaraj K

  • Hyungkeun Seo,
    CCS 6 comes with SYS/BIOS 6, which deals with memory in a different way compared to DSP/BIOS. The platform for your CCS project is 'ti.platforms.evmOMAPL138' and that's where memory segments and their sizes are defined. If you want to change the memory configuration, you have to use the Platform Wizard. You can start from evmOMAPL138, make the changes you need, and then create your new platform. In your project, you then specify that new platform. Here is the guide for the Platform Wizard:
    http://rtsc.eclipse.org/docs-tip/Demo_of_the_RTSC_Platform_Wizard_in_CCSv4
    You should also update XDCtools to a newer version because 3.30.01 contains a bug related to the Platform Wizard:
    http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/3_30_02_44/index_FDS.html

    Let me know if you have further questions.

  • Thank you!!

    I solve the problem because of your help. Thank you!!!!