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/TMDXRM46HDK: How to map memory sections into external memory

Part Number: TMDXRM46HDK
Other Parts Discussed in Thread: RM46L852

Tool/software: Code Composer Studio

Hello,

On our Hercules RM46x Development Kit, we would like to map some memory sections to external memory. However, doing just that with the linker command file results in the following GEL error:

CortexR4: GEL Output:     Memory Map Setup for Flash @ Address 0x0CortexR4: GEL Output:     Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR4: File Loader: Verification failed: Values at address 0x80000020 do not match Please verify target memory and memory map.
CortexR4: GEL: File: /local_ssd2/tmp/WIP/LaunchProj0_RM46/Release/LaunchProj0_RM46.out: a data verification error occurred, file load failed.
CortexR4: GEL Output:     Memory Map Setup for Flash @ Address 0x0 due to System Reset


In CCS, the connection is to "RM46L852" via the "Texas Instruments XDS100v2 USB Debug Probe".

The gel file is emulation/gel/rm46l852.gel

The sections ar defined as follows:

MEMORY
{
    VECTORS (X)  : origin=0x00000000 length=0x00000020
    FLASH0  (RX) : origin=0x00000040 length=0x0017FFC0
    FLASH1  (RX) : origin=0x00180000 length=0x00180000
    STACKS  (RW) : origin=0x08000000 length=0x00004500
    RAM     (RW) : origin=0x08004500 length=0x0002BB00
    RAM_EXT (RW) : origin=0x80000000 length=0x00800000

}

SECTIONS
{
    .intvecs : {} > VECTORS
    .text    : {} > RAM_EXT
    .const   : {} > RAM_EXT
    .cinit   : {} > RAM_EXT
    .pinit   : {} > RAM_EXT
    .bss     : {} > RAM_EXT
    .data    : {} > RAM_EXT
    .sysmem  : {} > RAM_EXT
    
    .stack   : {} > RAM_EXT

    .ARM.extab: {} > RAM_EXT
    .ARM.exidx: {} > RAM_EXT

}

The linker options are:

-mv7R4 --code_state=32 --float_support=fpalib -me -O3 --symdebug:none --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=int --wchar_t=32 --abi=eabi -z -m"LaunchProj0_RM46.map" -i"/local_hdd/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.1.LTS/lib" -i"/local_hdd/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.1.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="LaunchProj0_RM46_linkInfo.xml" --trampolines=on -o "LaunchProj0_RM46.out" "./source/main.obj" "/local_ssd2/tmp/WIP/rm46hdk.cmd" -lrtsv7R4_A_le_eabi.lib

I guess I'm missing something but I don't see what - any help is highy appreciated.

  • Hello Tobias,

    You can not load the code into SDRAM before it is initialized. I recommend you load your code to flash, and move the ata to SDRAM after it is initialized.

    Regards,
    QJ
  • Hello QJ, thanks for your reply!

    Yes, in fact, that's exactly what I'm looking for: A possibility to initialize the SDRAM, but: before the program is loaded.

    The thing is that we want to map some sections to the external memory because they do not fit into the internal memory, so loading from flash to SDRAM beats the purpose. I know of some C6x boards where the SDRAM initialization was done by GEL files and I could map all the memory section into external SDRAM using just the linker command file. Can you point me to some GEL file that initializes the SDRAM for the RM46HDK? Thanks!