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/TMS320F28379D: Memory Issue:I need a large array

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

I am new to C2000, I need 3 array of 4096  Uint 16 to do fft.I just changed RESULTS_BUFFER_SIZE to 4096 in the example "adc_soc_continuous_dma"

below are the 2838x_flash_Ink_cpu1.cmd:(by the way,if I choose to load by 2837x_RAM_lnk_cpu1.cmd,another error occurred BEGIN memory range overlaps existing memory range BEGIN.)


MEMORY
{
   /* BEGIN is used for the "boot to Flash" bootloader mode   */
   BEGIN            : origin = 0x080000, length = 0x000002
   BOOT_RSVD        : origin = 0x000002, length = 0x0001AE     /* Part of M0, BOOT rom will use this for stack */
   RAMM0            : origin = 0x0001B0, length = 0x000250
   RAMM1            : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
   RAMD0            : origin = 0x00C000, length = 0x000800
   RAMD1            : origin = 0x00C800, length = 0x000800
   RAMLS0           : origin = 0x008000, length = 0x000800
   RAMLS1           : origin = 0x008800, length = 0x000800
   RAMLS2           : origin = 0x009000, length = 0x000800
   RAMLS3           : origin = 0x009800, length = 0x000800
   RAMLS4           : origin = 0x00A000, length = 0x000800
   RAMLS5           : origin = 0x00A800, length = 0x000800
   RAMLS6           : origin = 0x00B000, length = 0x000800
   RAMLS7           : origin = 0x00B800, length = 0x000800
   RAMGS0           : origin = 0x00D000, length = 0x001000
   RAMGS1           : origin = 0x00E000, length = 0x001000
   RAMGS2           : origin = 0x00F000, length = 0x001000
   RAMGS3           : origin = 0x010000, length = 0x001000
   RAMGS4           : origin = 0x011000, length = 0x001000
   RAMGS5           : origin = 0x012000, length = 0x001000
   RAMGS6           : origin = 0x013000, length = 0x001000
   RAMGS7           : origin = 0x014000, length = 0x001000
   RAMGS8           : origin = 0x015000, length = 0x001000
   RAMGS9           : origin = 0x016000, length = 0x001000
   RAMGS10          : origin = 0x017000, length = 0x001000
   RAMGS11          : origin = 0x018000, length = 0x001000
   RAMGS12          : origin = 0x019000, length = 0x001000
   RAMGS13          : origin = 0x01A000, length = 0x001000
   RAMGS14          : origin = 0x01B000, length = 0x001000
   RAMGS15          : origin = 0x01C000, length = 0x001000
   /* Flash sectors */
   FLASH0           : origin = 0x080002, length = 0x001FFE  /* on-chip Flash */
   FLASH1           : origin = 0x082000, length = 0x002000  /* on-chip Flash */
   FLASH2           : origin = 0x084000, length = 0x002000  /* on-chip Flash */
   FLASH3           : origin = 0x086000, length = 0x002000  /* on-chip Flash */
   FLASH4           : origin = 0x088000, length = 0x008000  /* on-chip Flash */
   FLASH5           : origin = 0x090000, length = 0x008000  /* on-chip Flash */
   FLASH6           : origin = 0x098000, length = 0x008000  /* on-chip Flash */
   FLASH7           : origin = 0x0A0000, length = 0x008000  /* on-chip Flash */
   FLASH8           : origin = 0x0A8000, length = 0x008000  /* on-chip Flash */
   FLASH9           : origin = 0x0B0000, length = 0x008000  /* on-chip Flash */
   FLASH10          : origin = 0x0B8000, length = 0x002000  /* on-chip Flash */
   FLASH11          : origin = 0x0BA000, length = 0x002000  /* on-chip Flash */
   FLASH12          : origin = 0x0BC000, length = 0x002000  /* on-chip Flash */
   FLASH13          : origin = 0x0BE000, length = 0x002000  /* on-chip Flash */
   CPU1TOCPU2RAM   : origin = 0x03A000, length = 0x000800
   CPU2TOCPU1RAM   : origin = 0x03B000, length = 0x000800
   CPUTOCMRAM      : origin = 0x039000, length = 0x000800
   CMTOCPURAM      : origin = 0x038000, length = 0x000800
   CANA_MSG_RAM     : origin = 0x049000, length = 0x000800
   CANB_MSG_RAM     : origin = 0x04B000, length = 0x000800
   RESET            : origin = 0x3FFFC0, length = 0x000002
}
SECTIONS
{
   codestart           : > BEGIN, ALIGN(4)
   .text               : >> FLASH1 | FLASH2 | FLASH3 | FLASH4, ALIGN(4)
   .cinit              : > FLASH4, ALIGN(4)
   .switch             : > FLASH1, ALIGN(4)
   .reset              : > RESET, TYPE = DSECT /* not used, */
   .stack              : > RAMM1
#if defined(__TI_EABI__)
   .init_array      : > FLASH1, ALIGN(4)
   .bss             : > RAMLS5
   .bss:output      : > RAMLS3
   .bss:cio         : > RAMLS5
   .data            : > RAMLS5
   .sysmem          : > RAMLS5
   /* Initalized sections go in Flash */
   .const           : > FLASH5, ALIGN(4)
#else
   .pinit           : > FLASH1, ALIGN(4)
   .ebss            : > RAMLS5
   .esysmem         : > RAMLS5
   .cio             : > RAMLS5
   /* Initalized sections go in Flash */
   .econst          : >> FLASH4 | FLASH5, ALIGN(4)
#endif
   ramgs0 : > RAMGS0, type=NOINIT
   ramgs1 : > RAMGS1, type=NOINIT
  
   MSGRAM_CPU1_TO_CPU2 : > CPU1TOCPU2RAM, type=NOINIT
   MSGRAM_CPU2_TO_CPU1 : > CPU2TOCPU1RAM, type=NOINIT
   MSGRAM_CPU_TO_CM    : > CPUTOCMRAM, type=NOINIT
   MSGRAM_CM_TO_CPU    : > CMTOCPURAM, type=NOINIT
   /* The following section definition are for SDFM examples */
   Filter_RegsFile  : > RAMGS0
   Filter1_RegsFile : > RAMGS1, fill=0x1111
   Filter2_RegsFile : > RAMGS2, fill=0x2222
   Filter3_RegsFile : > RAMGS3, fill=0x3333
   Filter4_RegsFile : > RAMGS4, fill=0x4444
   Difference_RegsFile : >RAMGS5, fill=0x3333
   #if defined(__TI_EABI__)
       .TI.ramfunc : {} LOAD = FLASH3,
                        RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,
                        LOAD_START(RamfuncsLoadStart),
                        LOAD_SIZE(RamfuncsLoadSize),
                        LOAD_END(RamfuncsLoadEnd),
                        RUN_START(RamfuncsRunStart),
                        RUN_SIZE(RamfuncsRunSize),
                        RUN_END(RamfuncsRunEnd),
                        ALIGN(4)
   #else
       .TI.ramfunc : {} LOAD = FLASH3,
                        RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,
                        LOAD_START(_RamfuncsLoadStart),
                        LOAD_SIZE(_RamfuncsLoadSize),
                        LOAD_END(_RamfuncsLoadEnd),
                        RUN_START(_RamfuncsRunStart),
                        RUN_SIZE(_RamfuncsRunSize),
                        RUN_END(_RamfuncsRunEnd),
                        ALIGN(4)
   #endif
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/
The error occurred while lingking:
<Linking>
"C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_FLASH_lnk_cpu1.cmd", line 97: error #10099-D:
   program will not fit into available memory.  run placement with
   alignment/blocking fails for section "ramgs0" size 0x2000 page 1.  Available
   memory ranges:
   RAMGS0       size: 0x1000       unused: 0x1000       max hole: 0x1000   
error #10010: errors encountered during linking;
   "adc_soc_continuous_dma_cpu01.out" not built
Can someone help me?

  • I guess this is not about lack of memory. I find that global variables are in .ebss

    But in my case it's about section "ramgs0". I don't know what is section "ramgs0".

  • When I choose to load in RAM, this happens

    <Linking>
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 7: error #10263:
       BEGIN memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 7: error #10264:
       BEGIN memory range overlaps existing memory range BEGIN
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 8: error #10263:
       RAMM0 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 8: error #10264:
       RAMM0 memory range overlaps existing memory range RAMM0
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 9: error #10263:
       RAMD0 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 9: error #10264:
       RAMD0 memory range overlaps existing memory range RAMD0
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 10: error #10263:
       RAMLS0 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 10: error #10264:
       RAMLS0 memory range overlaps existing memory range RAMLS0
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 11: error #10263:
       RAMLS1 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 11: error #10264:
       RAMLS1 memory range overlaps existing memory range RAMLS1
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 12: error #10263:
       RAMLS2 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 12: error #10264:
       RAMLS2 memory range overlaps existing memory range RAMLS2
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 13: error #10263:
       RAMLS3 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 13: error #10264:
       RAMLS3 memory range overlaps existing memory range RAMLS3
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 14: error #10263:
       RAMLS4 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 14: error #10264:
       RAMLS4 memory range overlaps existing memory range RAMLS4
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 15: error #10263:
       RESET memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 15: error #10264:
       RESET memory range overlaps existing memory range RESET
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 19: error #10263:
       BOOT_RSVD memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 19: error #10264:
       BOOT_RSVD memory range overlaps existing memory range BOOT_RSVD
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 20: error #10263:
       RAMM1 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 20: error #10264:
       RAMM1 memory range overlaps existing memory range RAMM1
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 21: error #10263:
       RAMD1 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 21: error #10264:
       RAMD1 memory range overlaps existing memory range RAMD1
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 23: error #10263:
       RAMLS5 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 23: error #10264:
       RAMLS5 memory range overlaps existing memory range RAMLS5
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 25: error #10263:
       RAMGS0 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 25: error #10264:
       RAMGS0 memory range overlaps existing memory range RAMGS0
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 26: error #10263:
       RAMGS1 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 26: error #10264:
       RAMGS1 memory range overlaps existing memory range RAMGS1
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 27: error #10263:
       RAMGS2 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 27: error #10264:
       RAMGS2 memory range overlaps existing memory range RAMGS2
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 28: error #10263:
       RAMGS3 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 28: error #10264:
       RAMGS3 memory range overlaps existing memory range RAMGS3
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 29: error #10263:
       RAMGS4 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 29: error #10264:
       RAMGS4 memory range overlaps existing memory range RAMGS4
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 30: error #10263:
       RAMGS5 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 30: error #10264:
       RAMGS5 memory range overlaps existing memory range RAMGS5
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 31: error #10263:
       RAMGS6 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 31: error #10264:
       RAMGS6 memory range overlaps existing memory range RAMGS6
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 32: error #10263:
       RAMGS7 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 32: error #10264:
       RAMGS7 memory range overlaps existing memory range RAMGS7
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 33: error #10263:
       RAMGS8 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 33: error #10264:
       RAMGS8 memory range overlaps existing memory range RAMGS8
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 34: error #10263:
       RAMGS9 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 34: error #10264:
       RAMGS9 memory range overlaps existing memory range RAMGS9
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 35: error #10263:
       RAMGS10 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 35: error #10264:
       RAMGS10 memory range overlaps existing memory range RAMGS10
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 36: error #10263:
       RAMGS11 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 36: error #10264:
       RAMGS11 memory range overlaps existing memory range RAMGS11
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 37: error #10263:
       RAMGS12 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 37: error #10264:
       RAMGS12 memory range overlaps existing memory range RAMGS12
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 38: error #10263:
       RAMGS13 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 38: error #10264:
       RAMGS13 memory range overlaps existing memory range RAMGS13
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 39: error #10263:
       RAMGS14 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 39: error #10264:
       RAMGS14 memory range overlaps existing memory range RAMGS14
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 40: error #10263:
       RAMGS15 memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 40: error #10264:
       RAMGS15 memory range overlaps existing memory range RAMGS15
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 42: error #10263:
       CPU2TOCPU1RAM memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 42: error #10264:
       CPU2TOCPU1RAM memory range overlaps existing memory range CPU2TOCPU1RAM
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 43: error #10263:
       CPU1TOCPU2RAM memory range has already been specified
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd", line 43: error #10264:
       CPU1TOCPU2RAM memory range overlaps existing memory range CPU1TOCPU2RAM
    error #10010: errors encountered during linking;
       "adc_soc_continuous_dma_cpu01.out" not built

    And 2837x_RAM_Ink_cpu1.cmd :


    MEMORY
    {
    PAGE 0 :
       /* BEGIN is used for the "boot to SARAM" bootloader mode   */
       BEGIN            : origin = 0x000000, length = 0x000002
       RAMM0            : origin = 0x000122, length = 0x0002DE
       RAMD0            : origin = 0x00B000, length = 0x000800
       RAMLS0           : origin = 0x008000, length = 0x000800
       RAMLS1           : origin = 0x008800, length = 0x000800
       RAMLS2        : origin = 0x009000, length = 0x000800
       RAMLS3        : origin = 0x009800, length = 0x000800
       RAMLS4        : origin = 0x00A000, length = 0x000800
       RESET            : origin = 0x3FFFC0, length = 0x000002
    PAGE 1 :
       BOOT_RSVD       : origin = 0x000002, length = 0x000120     /* Part of M0, BOOT rom will use this for stack */
       RAMM1           : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
       RAMD1           : origin = 0x00B800, length = 0x000800

       RAMLS5      : origin = 0x00A800, length = 0x000800
       RAMGS0      : origin = 0x00C000, length = 0x001000
       RAMGS1      : origin = 0x00D000, length = 0x001000
       RAMGS2      : origin = 0x00E000, length = 0x001000
       RAMGS3      : origin = 0x00F000, length = 0x001000
       RAMGS4      : origin = 0x010000, length = 0x001000
       RAMGS5      : origin = 0x011000, length = 0x001000
       RAMGS6      : origin = 0x012000, length = 0x001000
       RAMGS7      : origin = 0x013000, length = 0x001000
       RAMGS8      : origin = 0x014000, length = 0x001000
       RAMGS9      : origin = 0x015000, length = 0x001000
       RAMGS10     : origin = 0x016000, length = 0x001000
       RAMGS11     : origin = 0x017000, length = 0x001000
       RAMGS12     : origin = 0x018000, length = 0x001000
       RAMGS13     : origin = 0x019000, length = 0x001000
       RAMGS14     : origin = 0x01A000, length = 0x001000
       RAMGS15     : origin = 0x01B000, length = 0x001000
      
       CPU2TOCPU1RAM   : origin = 0x03F800, length = 0x000400
       CPU1TOCPU2RAM   : origin = 0x03FC00, length = 0x000400
    }

    SECTIONS
    {
       codestart        : > BEGIN,     PAGE = 0
      
    #ifdef __TI_COMPILER_VERSION__
       #if __TI_COMPILER_VERSION__ >= 15009000
        .TI.ramfunc : {} > RAMM0,      PAGE = 0
       #else
       ramfuncs         : > RAMM0      PAGE = 0  
       #endif
    #endif  
      
       .text            : >>RAMM0 | RAMD0 |  RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4,   PAGE = 0
       .cinit           : > RAMM0,     PAGE = 0
       .pinit           : > RAMM0,     PAGE = 0
       .switch          : > RAMM0,     PAGE = 0
       .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */
       .stack           : > RAMM1,     PAGE = 1
       .ebss            : > RAMLS5,    PAGE = 1
       .econst          : > RAMLS5,    PAGE = 1
       .esysmem         : > RAMLS5,    PAGE = 1
       Filter_RegsFile  : > RAMGS0,    PAGE = 1
       ramgs0           : > RAMGS0,    PAGE = 1
       ramgs1           : > RAMGS1,    PAGE = 1
      
       /* The following section definitions are required when using the IPC API Drivers */
        GROUP : > CPU1TOCPU2RAM, PAGE = 1
        {
            PUTBUFFER
            PUTWRITEIDX
            GETREADIDX
        }
       
        GROUP : > CPU2TOCPU1RAM, PAGE = 1
        {
            GETBUFFER :    TYPE = DSECT
            GETWRITEIDX :  TYPE = DSECT
            PUTREADIDX :   TYPE = DSECT
        } 
     
    }
    /*
    //===========================================================================
    // End of file.
    //===========================================================================
    */
  • Hi,

    Look like in your project two linker command files are linked hence getting this issue. Please check the project property and remove addition linker cmd file.

    Vivek Singh

  • Thanks for your reply

    The issue that I cannot upload via ram has been solved, it is just like you said.

    But when I changed the RESULTS_BUFFER_SIZE from 1024 to 4096

    That error still occurred :

    <Linking>
    "E:/C2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_FLASH_lnk_cpu1.cmd", line 97: error #10099-D:
       program will not fit into available memory.  run placement with
       alignment/blocking fails for section "ramgs0" size 0x2000 page 1.  Available
       memory ranges:
       RAMGS0       size: 0x1000       unused: 0x1000       max hole: 0x1000    
    error #10010: errors encountered during linking;
       "adc_soc_continuous_dma_cpu01.out" not built

    I have uploaded that example.

    Thanks again.adc_soc_continuous_dma.zip

  • Finally, I resolved this issue.

    In the source code, there are two prepared statement : #pragma DATA_SECTION(adcData0, "ramgs0");
    #pragma DATA_SECTION(adcData1, "ramgs0");

    Which means the section ramgs0(length 4096*16bit) was used twice to store a 4096*bit array.

    This issue is about ignoring the prepared statement in the source code

    Thanks all who give advice!