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.

GEL file vs. .map show different DRAM sizes

Other Parts Discussed in Thread: OMAP-L137, TEST2

Hi,

     I'm trying to set up some software that was ported from an older DSP. I've been using Code Composer Studio  Version: 5.1.0.09000, so the project configuration has been done via editing the .cfg file via Code Composer. The current target platform is a Spectrum Digital OMAP-L137 evaluation kit. Everything compiles and runs (via the USB debug) but I am unable to allocate more than 32K of memory. The GEL files that are associated with this board show the DRAM size to be 0x20000000:

 /* DDR */
GEL_MapAddStr( 0xB0000000, 0, 0x00008000, "R|W|AS4", 0 );   // EMIFB Control
GEL_MapAddStr( 0xC0000000, 0, 0x20000000, "R|W|AS4", 0 );   // EMIFB SDRAM Data

     The compiler/linker output in the .map file shows DRAM to be a different size of 0x04000000:

******************************************************************************
               TMS320C6x Linker PC v7.3.1                      
******************************************************************************
>> Linked Tue Feb 07 10:10:46 2012
OUTPUT FILE NAME:   <test2.out>
ENTRY POINT SYMBOL: "_c_int00"  address: c3fc4d60
MEMORY CONFIGURATION
         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  IROM                  11700000   00100000  00000000  00100000  R  X
  IRAM                  11800000   00040000  00000000  00040000  RW X
  L3_CBA_RAM            80000000   00020000  00000000  00020000  RW X
  SDRAM                 c0000000   04000000  03fcd49e  00032b62  RWIX


     I don't see any discussions on CC5 and setting the linker up for the larger memory that seems to be on the board based on the contents of the GEL file. What am I missing here? Thanks for any help.

  • So I've found a linker command file from:

    http://processors.wiki.ti.com/index.php/Linker_CMD_Files_for_CCS

    Under Project->Properties, then selecting CCS general, there is a Linker Command File under Advanced settings. After adding the new linker command file I get errors during the link of:

    -l"libc.a" "../OMAPL137.cmd"
    <Linking>
    "../OMAPL137.cmd", line 24: error: SHDSPL2ROM memory range overlaps existing memory range IROM SHDSPL2ROM  o = 0x11700000  l = 0x00100000  /* 1MB L2 Shared Internal ROM */
    "../OMAPL137.cmd", line 25: error: SHDSPL2RAM memory range overlaps existing memory range IRAM  SHDSPL2RAM  o = 0x11800000  l = 0x00040000  /* 256kB L2 Shared Internal RAM */
    "../OMAPL137.cmd", line 33: error: SHRAM memory range overlaps existing memory range L3_CBA_RAM SHRAM       o = 0x80000000  l = 0x00020000  /* 128kB Shared RAM */
    "../OMAPL137.cmd", line 34: error: EMIFBSDRAM memory range overlaps existing memory range SDRAM EMIFBSDRAM  o = 0xC0000000  l = 0x10000000  /* 256MB SDRAM Data */

    MEMORY CONFIGURATION

             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      DSPL2ROM              00700000   00010000  00000000  00010000  RWIX
      DSPL2RAM              00800000   00040000  00000000  00040000  RWIX
      DSPL1PRAM             00e00000   00008000  00000000  00008000  RWIX
      DSPL1DRAM             00f00000   00008000  00000000  00008000  RWIX
      SHDSPL2ROM            11700000   00100000  00000000  00100000  RWIX
      IROM                  11700000   00100000  00000000  00100000  R  X
      SHDSPL2RAM            11800000   00040000  00000000  00040000  RWIX
      IRAM                  11800000   00040000  00000000  00040000  RW X
      SHDSPL1PRAM           11e00000   00008000  00000000  00008000  RWIX
      SHDSPL1DRAM           11f00000   00008000  00000000  00008000  RWIX
      EMIFASDRAM            40000000   08000000  00000000  08000000  RWIX
      EMIFACS2              60000000   02000000  00000000  02000000  RWIX
      EMIFACS3              62000000   02000000  00000000  02000000  RWIX
      EMIFACS4              64000000   02000000  00000000  02000000  RWIX
      EMIFACS5              66000000   02000000  00000000  02000000  RWIX
      SHRAM                 80000000   00020000  00000000  00020000  RWIX
      L3_CBA_RAM            80000000   00020000  00000000  00020000  RW X
      EMIFBSDRAM            c0000000   10000000  00000000  10000000  RWIX
      SDRAM                 c0000000   04000000  03fd2cce  0002d332  RWIX
      ARMRAM                ffff0000   00002000  00000000  00002000  RWIX

         The IROM, IRAM, L3_CBA_RAM and SDRAM come from the defaults somewhere (can't find them) and the rest are from the linker file. So how do I keep the board defaults, linker config file and GEL files all lined up correctly?

    Thanks...




  • Ok,

         So nobody must be using the Spectrum Digital OAMP137 EVM board anymore. I started a blank CCS project from scratch again. I imported my DSP source code files into the project and then I added a RSTC configuration file selecting the EVMOMAP137 with a Connection of "Spectrum Digital DSK-EVM PLUS onboard USB Emulator". From the .ccxml screens it seems like the device settings are correct:

    But then looking at the .cfg Runtime screen under Platform information I notice that the device is a TMS320DA830 and to modify this I need to select a different platform:

     

    Because the device is not the correct, the memory map is wrong and linking process fails:

    MEMORY CONFIGURATION

             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      IROM                  11700000   00100000  00000000  00100000  R  X
      IRAM                  11800000   00040000  00000000  00040000  RW X
      L3_CBA_RAM            80000000   00020000  00000000  00020000  RW X
      SDRAM                 c3000000   01000000  000261f7  00fd9e09  RWIX

        So what is the failure here? Have I found an issue because I did not originally create a RTSC project? If the .ccxml screens tell me it is a OAMPL137 then the device should be mapped correctly. Any help would be appreciated.

    Thanks,

    John C.


  • Well I can't explain why Code Composer has the wrong device, but to fix this issue I had to create a "New RTSC Platform" as described in 'http://rtsc.eclipse.org/docs-tip/Demo_of_the_RTSC_Platform_Wizard_in_CCSv4'. Although the demo is using Code Composer V4, the steps are very close to version 5. So in short here are most of the screens you should see:

    Select the new RTSC platform:

    Create the new 'custom' RTSC platform, and add it to the repository package path:

    Modify the memory setting to match the gel file from Digital Spectrum (maker of the OMAPL137 board I am using.)

    You can't see all my device memory settings from the pic so this was my current list:

      IRAM                      11800000   00040000

      IROM                     11700000   00100000
      L1DSDRAM          11F00000  00008000
      L1PSDRAM          11E00000  00008000

      L3_CBA_RAM      80000000   00020000
      SDRAM                 C0000000   20000000

    Finishing should save you device into the repository:

    Going back to your project under CCS General, RTSC tab you will have to Add the custom device and then select it from the Platform pulldown.