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/PROCESSOR-SDK-AM437X: Linker errors

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: TIDA-010016

Tool/software: Code Composer Studio

Hi,

Hi,

I think I have a similar problem with my CCS setup. I have created an IO link project based on TIDA-010016.

<C:/ti/pdk_am437x_1_0_15/packages/ti/build/am437x/config_am437x_a9.bld> is included as described in this forum.

Compiling without problems, I get a linker error at the end:

makefile:251: recipe for target 'EPW600_AM437x.out' failed
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:30: warning: redeclaration of memory region `OCMCRAM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:31: warning: redeclaration of memory region `L2SRAM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:32: warning: redeclaration of memory region `APP_CODE_MEM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:33: warning: redeclaration of memory region `APP_CACHED_DATA_MEM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:34: warning: redeclaration of memory region `APP_UNCACHED_DATA_BLK3_MEM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:35: warning: redeclaration of memory region `APP_CACHED_DATA_BLK1_MEM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:36: warning: redeclaration of memory region `APP_CACHED_DATA_BLK2_MEM'
c:/ti/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:43: error: redefinition of memory region alias `REGION_BSS'
collect2.exe: error: ld returned 1 exit status
makefile:247: recipe for target 'all' failed
gmake[1]: *** [EPW600_AM437x.out] Error 1
gmake: *** [all] Error 2

**** Build Finished ****


This is how my *.lds file starts with:

MEMORY
{
    OCMCRAM (RWX) :     org = 0x40300000, len = 0x20000
    L2SRAM (RWX) :      org = 0x40500000, len = 0x40000
    APP_CODE_MEM :      org = 0x80000000, len = 0x200000
    APP_CACHED_DATA_MEM :    org = 0x80200000, len = 0x1400000
    APP_UNCACHED_DATA_BLK3_MEM :  org = 0xa0000000, len = 0x200000
    APP_CACHED_DATA_BLK1_MEM :   org = 0x81600000, len = 0xf400000
    APP_CACHED_DATA_BLK2_MEM :   org = 0x90a00000, len = 0x8000000
}

REGION_ALIAS("REGION_BSS", APP_CACHED_DATA_MEM);
REGION_ALIAS("REGION_TEXT", APP_CODE_MEM);
REGION_ALIAS("REGION_DATA", APP_CACHED_DATA_MEM);
REGION_ALIAS("REGION_STACK", APP_CACHED_DATA_MEM);
REGION_ALIAS("REGION_HEAP", APP_CACHED_DATA_MEM);
REGION_ALIAS("REGION_ARM_EXTAB", APP_CACHED_DATA_MEM);
REGION_ALIAS("REGION_ARM_EXIDX", APP_CACHED_DATA_MEM);


The created <.\configPkg\linker.cmd> shows content (memory area and region alias declaration) in the right way.
What could be the reason for the redeclarations? Any other file(s) involved in the mapping?

Best regards,
Thomas

  • Thomas,

    You seem to have multiple linker command files associated with the project. In a BIOS project the linker command file is auto generated and so you should not include any other linker command files that cause conflict with the BIOS generated linker command file. 

    Can you please check your work space or go to Build Properties and in General settings where it shows compiler setting, look to see if the default linker command file for AM437x that is part of CCS is not being used as part of the project. If it is change the setting to none and try to rebuild the project.

    Regards,

    Rahul