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.

DEFAULT memory range overlaps existing memory range

Other Parts Discussed in Thread: TM4C129XNCZAD, SYSBIOS

Hello,

iam using CCSV6 and TivaWare_C_Series-2.1.0.12573.when i tried to shift my application address to start from address 0x00004000 instead of 0x00000000

and my MPB.cmd file :


/*
 *  ========MPB.cmd ========
 *  Define the memory block start/length for the TM4C129XNCZAD
 */
 /* The starting address of the application.  Normally the interrupt vectors  */
/* must be located at the beginning of the application.                      */
#define APP_BASE 0x00004000

MEMORY
{
    FLASH (RX) : origin = APP_BASE, length = 0x000fc000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    ESRAM_PART1(RWX) : origin = 0x60000000, length = 0x00100000        /* 1MB will be reserved for the FW update */
    ESRAM_PART2(RWX) : origin = 0x60100000, length = 0x00700000
}

/* The following command line options are set as part of the CCS project.    */
/* If you are building using the command line, or for some reason want to    */
/* define them here, you can uncomment and modify these lines as needed.     */
/* If you are using CCS for building, it is probably better to make any such */
/* modifications in your CCS project and leave this file alone.              */
/*                                                                           */
/* --heap_size=0                                                             */
/* --stack_size=256                                                          */
/* --library=rtsv7M4_T_le_eabi.lib                                           */

/* Section allocation in memory */
SECTIONS
{
    .intvecs:   > APP_BASE
    .text   :   > FLASH
    .const  :   > FLASH
    .cinit  :   > FLASH
    .pinit  :   > FLASH
    .init_array : > FLASH

    .vtable :   > 0x20000000
    .data   :   > SRAM
    .bss    :   > SRAM
    .sysmem :   > SRAM
    .stack  :   > SRAM
    .no_init_ram_sect : {} type=NOINIT > 0x2003c800 /* made for the loggers*/
    .xram2   : {} type=NOINIT > ESRAM_PART2         /* made for the firmware update */
    .xram1   : {} type=NOINIT > ESRAM_PART1
}

__STACK_TOP = __stack + 512;

i got the following error DEFAULT memory range overlaps existing memory range ,by inspection the console it was as follow

'Building target: MPB.out'
'Invoking: ARM Linker'
'Flags: -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --gcc --define=PART_TM4C129XNCZAD --define=ccs --define=TIVAWARE --define=ccs="ccs" --display_error_number --diag_warning=225 --diag_wrap=off --gen_func_subsections=on -z -m"MPB.map" --heap_size=0 --stack_size=512 -i"c:/ti/ccsv6/tools/compiler/arm_5.1.9/lib" -i"c:/ti/ccsv6/tools/compiler/arm_5.1.9/include" --reread_libs --warn_sections --display_error_number --diag_wrap=off --xml_link_info="MPB_linkInfo.xml" --rom_model'
"c:/ti/ccsv6/tools/compiler/arm_5.1.9/bin/armcl" -@"ccsLinker.opt" -o "MPB.out"
<Linking>
"./configPkg/linker.cmd", line 181: warning #10096-D: specified address lies outside memory map
error #10264: DEFAULT memory range overlaps existing memory range FLASH
error #10264: DEFAULT memory range overlaps existing memory range SRAM
error #10264: DEFAULT memory range overlaps existing memory range ESRAM_PART1
error #10264: DEFAULT memory range overlaps existing memory range ESRAM_PART2
error #10010: errors encountered during linking; "MPB.out" not built

>> Compilation failure
gmake: *** [MPB.out] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

The linker.cmd file is created automatically each buil in ./debug/configpackgs .

Thank you

Regards

Ahmed

  • Hello Ahmed,

    I think you have the same issue as the following thread.

    http://e2e.ti.com/support/embedded/tirtos/f/355/p/294035/1025584.aspx

    Solution: Open the app.cfg file, go to XDCtools => System => Program and select the Properties Tab. This has a drop down menu call sectMap, open it, then drop down .resetVecs and in the loadAddress fill the APP_BASE from the cmd file.

    Regards
    Amit
  • Hello Amit,

    Thank you for your reply ,i have followed your instructions but i had a problem with the CCS wizard couldn't save the load address but by trying the following two lines in app cfg script it works fine

    var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
    m3Hwi.resetVectorAddress = 0x4000; /* App base */

    Thanks
    Regards
    Ahmed
  • Hello Ahmed

    Yes, the graphical tool will also do the same operation

    Regards
    Amit