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.

Compiler/TM4C1294NCPDT: Linking error related to memory

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: TM4C129ENCPDT

Tool/software: TI C/C++ Compiler

Hi,

I have getting this linking error  while compiling my project. 

<Linking>
"configPkg/linker.cmd", line 155: 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 #10010: errors encountered during linking; "gluon-target-wifi.out" not built

>> Compilation failure
makefile:228: recipe for target 'gluon-target-wifi.out' failed
gmake: *** [gluon-target-wifi.out] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

Please let me know what are these and how to fix. I am using ti rtos with ccs

  • AKhilesh Gangwar said:
    "configPkg/linker.cmd", line 155: 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

    The usual reason for these types of error message is that the linker sees two linker command files that most likely have overlapping or conflicting memory ranges. Please take a look at the link command in the CCS build console to determine which linker command files are given to the linker, then open them to see if there are memory ranges defined more than once. Typically for TI-RTOS TivaC projects, an auto-generated file named linker.cmd file is passed to the linker in addition to a device/board specific .cmd file, but the auto-generated file does not define any memory ranges.

  • Hi Aarti,

    I have this. It is showing that auto generated linker.cmd is showing error. 


    SECTIONS
    {
    .bootVecs: type = DSECT
    .vecs: load > 0x20000000
    .resetVecs: load > 0x0     // this is the error // specified address lies outside memory map

    xdc.meta: type = COPY
    }

    As you said, this is the autogenerated file which is passed to the linker. And, it does not contain any memory ranges. Why this error is coming I am still not getting. One more file, TM4C129ENCPDT.cmd is being passed along with it. Can you explain a bit more?

    Thanks

  • Please save the complete build log to a text file (as described in this page) and attach it here. 

  • Hi,

    PFA file. 

    **** Build of configuration Debug for project gluon-target-wifi ****
    
    "C:\\ti\\ccs910\\ccs\\utils\\bin\\gmake" -k all 
     
            1 file(s) copied.
    making ../src/sysbios/sysbios.aem4f ...
    gmake[1]: Entering directory 'C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/src/sysbios'
    gmake[1]: Nothing to be done for 'all'.
    gmake[1]: Leaving directory 'C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/src/sysbios'
    Building file: "../gluon-firmware.cfg"
    Invoking: XDCtools
    "C:/ti/xdctools_3_32_00_06_core/xs" --xdcpath="C:/ti/tirtos_tivac_2_16_01_14/packages;C:/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages;C:/ti/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages;C:/ti/tirtos_tivac_2_16_01_14/products/ndk_2_25_00_09/packages;C:/ti/tirtos_tivac_2_16_01_14/products/uia_2_00_05_50/packages;C:/ti/tirtos_tivac_2_16_01_14/products/ns_1_11_00_10/packages;C:/ti/ccs910/ccs/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4F -p ti.platforms.tiva:TM4C1294NCPDT -r release -c "C:/ti/ccs910/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS" --compileOptions "-mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me --include_path=\"C:/ti/ccs910/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/include\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/board\" --include_path=\"C:/ti/wolfssl\" --include_path=\"C:/ti/tirtos_tivac_2_14_04_31/products/bios_6_42_03_35/packages/ti/sysbios/timers/gptimer\" --include_path=\"C:/ti/xdctools_3_32_00_06_core/packages/xdc\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/utils\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/commands\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/httpTask\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/cmdReceiveTask\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/histDataTask\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/cmdProcTask\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/softLoader\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/serverTask\" --include_path=\"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/modules/usbCdc\" --include_path=\"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b\" --include_path=\"C:/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/mw\" --include_path=\"C:/ti/ccs910/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/include\" --include_path=\"C:/ti/CC3100SDK_1.2.0/cc3100-sdk/simplelink/include\" --include_path=\"C:/ti/CC3100SDK_1.2.0/cc3100-sdk/simplelink/source\" --include_path=\"C:/ti/CC3100SDK_1.2.0/cc3100-sdk/simplelink\" --include_path=\"C:/ti/CC3100SDK_1.2.0/cc3100-sdk/simplelink_extlib/include\" --include_path=\"C:/ti/CC3100SDK_1.2.0/cc3100-sdk/simplelink_extlib/provisioninglib\" --include_path=\"C:/ti/tirtos_tivac_2_14_04_31/products/ndk_2_24_03_35/packages/ti/ndk/inc\" -g --gcc --define=ccs=\"ccs\" --define=ccs --define=TIVAWARE --define=WOLFSSL_TIRTOS --define=NET_SL --define=GLU_GLU --define=GLU_3G --define=TIVA_2_16_01_14 --define=PART_TM4C129ENCPDT --define=TARGET_IS_TM4C129_RA0 --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on  " "../gluon-firmware.cfg"
    configuring gluon-firmware.xem4f from package/cfg/gluon-firmware_pem4f.cfg ...
    generating custom ti.sysbios library makefile ... 
    Starting build of library sources ...
    making C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/src/sysbios/sysbios.aem4f ...
    gmake[1]: Entering directory `C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/src/sysbios'
    gmake[1]: Nothing to be done for `all'.
    gmake[1]: Leaving directory `C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi/src/sysbios'
    Build of libraries done.
    clem4f package/cfg/gluon-firmware_pem4f.c ...
    warning: ti.tirtos.TIRTOS: "C:/ti/tirtos_tivac_2_16_01_14/packages/ti/tirtos/TIRTOS.xs", line 49: ti.tirtos.TIRTOS : ti.tirtos.TIRTOS module is no longer required to configure driver instrumentation.  Please use the ti.drivers.Config and ti.mw.Config modules instead.
    warning: ti.tirtos.TIRTOS: "C:/ti/tirtos_tivac_2_16_01_14/packages/ti/tirtos/TIRTOS.xs", line 69: ti.tirtos.TIRTOS : TI-RTOS driver modules have been deprecated and replaced by the ti.drivers.Config module.  Please remove TIRTOS.useGPIO from the .cfg.
    warning: ti.tirtos.TIRTOS: "C:/ti/tirtos_tivac_2_16_01_14/packages/ti/tirtos/TIRTOS.xs", line 93: ti.tirtos.TIRTOS : TI-RTOS driver modules have been deprecated and replaced by the ti.drivers.Config module.  Please remove TIRTOS.useSDSPI from the .cfg.
    warning: ti.sysbios.BIOS: "C:/ti/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.xs", line 323: ti.sysbios.BIOS heapSize: BIOS.heapSize and Memory.defaultHeapSize have both been set.  Memory.defaultHeapSize ignored.  Using BIOS.heapSize.
    "package/cfg/gluon-firmware_pem4f.c", line 17392: warning #112-D: statement is unreachable
    "package/cfg/gluon-firmware_pem4f.c", line 18169: warning #112-D: statement is unreachable
    "package/cfg/gluon-firmware_pem4f.c", line 18404: warning #112-D: statement is unreachable
    "package/cfg/gluon-firmware_pem4f.c", line 18624: warning #112-D: statement is unreachable
    "package/cfg/gluon-firmware_pem4f.c", line 19004: warning #112-D: statement is unreachable
    Finished building: "../gluon-firmware.cfg"
     
    Building target: "gluon-target-wifi.out"
    Invoking: ARM Linker
    "C:/ti/ccs910/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --gcc --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=WOLFSSL_TIRTOS --define=NET_SL --define=GLU_GLU --define=GLU_3G --define=TIVA_2_16_01_14 --define=PART_TM4C129ENCPDT --define=TARGET_IS_TM4C129_RA0 --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on -z -m"gluon-target-wifi.map" --stack_size=512 --heap_size=0 -i"C:/ti/ccs910/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/lib" -i"C:/ti/ccs910/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/include" -i"C:/Users/Akhilesh/workspace_v9/gluon-target-wifi/gluon-target-wifi" -i"C:/ti/wolfssl/tirtos/packages/ti/net/wolfssl/lib" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="gluon-target-wifi_linkInfo.xml" --rom_model -o "gluon-target-wifi.out" "./signature.obj" "./board/EK_TM4C1294XL.obj" "./modules/bootloaderproc.obj" "./modules/main.obj" "./modules/cmdProcTask/cmdProcessor.obj" "./modules/cmdReceiveTask/cmdReceiver.obj" "./modules/commands/carComm.obj" "./modules/commands/createTuningFiles.obj" "./modules/commands/dataRequestGluCmd.obj" "./modules/commands/globalFunctions.obj" "./modules/commands/j1850pwm.obj" "./modules/commands/j1850vpw.obj" "./modules/commands/obdCommands.obj" "./modules/commands/obdInit.obj" "./modules/commands/pwm.obj" "./modules/commands/smog.obj" "./modules/histDataTask/gluHistProc.obj" "./modules/histDataTask/pmoHistProc.obj" "./modules/httpTask/cfg_confirm.obj" "./modules/httpTask/events_handler.obj" "./modules/httpTask/https.obj" "./modules/httpTask/httpsProcessor.obj" "./modules/httpTask/networkListHndl.obj" "./modules/httpTask/provisioning_logic.obj" "./modules/httpTask/simpleLinkProvision.obj" "./modules/httpTask/wifisockets.obj" "./modules/obdTask/obdProc.obj" "./modules/serverTask/accTaskProc.obj" "./modules/serverTask/bleServer.obj" "./modules/serverTask/socServer.obj" "./modules/serverTask/startServer.obj" "./modules/softLoader/erase.obj" "./modules/softLoader/executeSeq.obj" "./modules/softLoader/initEcu.obj" "./modules/softLoader/invokeWait.obj" "./modules/softLoader/kwpEraseBlock.obj" "./modules/softLoader/kwpRequestToWrite.obj" "./modules/softLoader/kwpWriteBlock.obj" "./modules/softLoader/openTunnel.obj" "./modules/softLoader/restore.obj" "./modules/softLoader/securityAccess.obj" "./modules/softLoader/sendBinFile.obj" "./modules/softLoader/sendCmd.obj" "./modules/softLoader/sendFile.obj" "./modules/softLoader/sendHexFile.obj" "./modules/softLoader/sendVbfFile.obj" "./modules/softLoader/setParams.obj" "./modules/softLoader/slUtils.obj" "./modules/softLoader/softLoader.obj" "./modules/softLoader/validateFiles.obj" "./modules/usbCdc/USB.obj" "./modules/usbCdc/llserial.obj" "./modules/usbCdc/tcpEchoHooks.obj" "./modules/usbCdc/usbMain.obj" "./modules/usbCdc/usbhcdc.obj" "./modules/usbCdc/usbhostenum.obj" "./modules/usbCdc/usbserialppp.obj" "./modules/utils/MX25FatFS.obj" "./modules/utils/MX25SPIFlash.obj" "./modules/utils/test.obj" "./modules/utils/utility.obj" "../board/tm4c129encpdt.cmd" -l"configPkg/linker.cmd" -llibc.a -l"C:/ti/wolfssl/tirtos/packages/ti/net/wolfssl/lib/wolfssl_tm4c_hw.aem4f" -l"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b/grlib/ccs/Debug/grlib.lib" -l"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b/usblib/ccs/Debug/usblib.lib" -l"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b/driverlib/ccs/Debug/driverlib.lib" 
    <Linking>
    "configPkg/linker.cmd", line 155: 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 #10010: errors encountered during linking; "gluon-target-wifi.out" not built
     
    >> Compilation failure
    makefile:228: recipe for target 'gluon-target-wifi.out' failed
    gmake: *** [gluon-target-wifi.out] Error 1
    gmake: Target 'all' not remade because of errors.
    
    **** Build Finished ****
    

  • Sorry I should've asked for these files as well. Could you please attach the board/tm4c129encpdt.cmd and configPkg/linker.cmd that are getting passed to the linker? You may need to rename the extension to .txt before attaching each file or create a zip file with both command files and then attach the zip file here. Thanks.

  • Hi Aarti,

    No issues. I am attaching .txt file of both. Please check and let me know

    /******************************************************************************
     *
     * Default Linker Command file for the Texas Instruments TM4C129ENCPDT
     *
     * This is derived from revision 15071 of the TivaWare Library.
     *
     *****************************************************************************/
    
    --retain=g_pfnVectors
    
    MEMORY
    {
        FLASH (RX) : origin = 0x00010000, length = 0x00100000
        SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }
    
    /* 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:   > 0x00000000
        .text   :   > FLASH
        .const  :   > FLASH
        .cinit  :   > FLASH
        .pinit  :   > FLASH
        .init_array : > FLASH
    
        .vtable :   > SRAM
        .data   :   > SRAM
        .bss    :   > SRAM
        .sysmem :   > SRAM
        .stack  :   > SRAM
    }
    
    __STACK_TOP = __stack + 512;
    
    /*
     * Do not modify this file; it is automatically generated from the template
     * linkcmd.xdt in the ti.platforms.tiva package and will be overwritten.
     */
    
    /*
     * put '"'s around paths because, without this, the linker
     * considers '-' as minus operator, not a file name character.
     */
    
    
    -l"C:\Users\Akhilesh\workspace_v9\gluon-target-wifi\gluon-target-wifi\Debug\configPkg\package\cfg\gluon-firmware_pem4f.oem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\ns_1_11_00_10\packages\ti\net\http\lib\http_sl.aem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\ns_1_11_00_10\packages\ti\net\lib\network_sl.aem4f"
    -l"C:/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/mw/wifi/cc3x00/lib/cc3x00_host_driver.aem4f"
    -l"C:/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_tivaware.aem4f"
    -l"C:/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_wifi_tivaware.aem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\tidrivers_tivac_2_16_01_13\packages\ti\mw\fatfs\lib\release\ti.mw.fatfs.aem4f"
    -l"C:/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/ports/lib/tirtosport.aem4f"
    -l"C:\Users\Akhilesh\workspace_v9\gluon-target-wifi\gluon-target-wifi\src\sysbios\sysbios.aem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\bios_6_45_02_31\packages\ti\catalog\arm\cortexm4\tiva\ce\lib\Boot.aem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\bios_6_45_02_31\packages\ti\targets\arm\rtsarm\lib\ti.targets.arm.rtsarm.aem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\bios_6_45_02_31\packages\ti\targets\arm\rtsarm\lib\boot.aem4f"
    -l"C:\ti\tirtos_tivac_2_16_01_14\products\bios_6_45_02_31\packages\ti\targets\arm\rtsarm\lib\auto_init.aem4f"
    
    --retain="*(xdc.meta)"
    
    /* C6x Elf symbols */
    --symbol_map __TI_STACK_SIZE=__STACK_SIZE
    --symbol_map __TI_STACK_BASE=__stack
    --symbol_map _stack=__stack
    
    
    --args 0x0
    -heap  0x0
    -stack 0x2000
    
    /*
     * Linker command file contributions from all loaded packages:
     */
    
    /* Content from xdc.services.global (null): */
    
    /* Content from xdc (null): */
    
    /* Content from xdc.corevers (null): */
    
    /* Content from xdc.shelf (null): */
    
    /* Content from xdc.services.spec (null): */
    
    /* Content from xdc.services.intern.xsr (null): */
    
    /* Content from xdc.services.intern.gen (null): */
    
    /* Content from xdc.services.intern.cmd (null): */
    
    /* Content from xdc.bld (null): */
    
    /* Content from ti.targets (null): */
    
    /* Content from ti.targets.arm.elf (null): */
    
    /* Content from xdc.rov (null): */
    
    /* Content from xdc.runtime (null): */
    
    /* Content from xdc.services.getset (null): */
    
    /* Content from ti.targets.arm.rtsarm (null): */
    
    /* Content from ti.sysbios.interfaces (null): */
    
    /* Content from ti.sysbios.family (null): */
    
    /* Content from ti.sysbios.family.arm (ti/sysbios/family/arm/linkcmd.xdt): */
    --retain "*(.vecs)"
    
    /* Content from ti.sysbios.rts (ti/sysbios/rts/linkcmd.xdt): */
    
    /* Content from xdc.runtime.knl (null): */
    
    /* Content from ti.catalog.arm.peripherals.timers (null): */
    
    /* Content from ti.catalog.arm.cortexm4 (null): */
    
    /* Content from ti.catalog (null): */
    
    /* Content from ti.catalog.peripherals.hdvicp2 (null): */
    
    /* Content from xdc.platform (null): */
    
    /* Content from xdc.cfg (null): */
    
    /* Content from ti.catalog.arm.cortexm3 (null): */
    
    /* Content from ti.catalog.arm.cortexm4.tiva.ce (null): */
    
    /* Content from ti.platforms.tiva (null): */
    
    /* Content from ti.sysbios.family.arm.lm4 (null): */
    
    /* Content from ti.sysbios.family.arm.m3 (ti/sysbios/family/arm/m3/linkcmd.xdt): */
    -u _c_int00
    --retain "*(.resetVecs)"
    ti_sysbios_family_arm_m3_Hwi_nvic = 0xe000e000;
    
    /* Content from ti.sysbios.hal (null): */
    
    /* Content from ti.sysbios.knl (null): */
    
    /* Content from ti.sysbios (null): */
    
    /* Content from ti.drivers.ports (null): */
    
    /* Content from ti.mw.fatfs (null): */
    
    /* Content from ti.drivers (null): */
    
    /* Content from ti.mw.wifi.cc3x00 (null): */
    
    /* Content from ti.mw (null): */
    
    /* Content from ti.net (null): */
    
    /* Content from ti.net.http (null): */
    
    /* Content from ti.tirtos (null): */
    
    /* Content from ti.sysbios.gates (null): */
    
    /* Content from ti.sysbios.heaps (null): */
    
    /* Content from ti.sysbios.xdcruntime (null): */
    
    /* Content from ti.sysbios.utils (null): */
    
    /* Content from configPkg (null): */
    
    /* Content from xdc.services.io (null): */
    
    
    
    /*
     * symbolic aliases for static instance objects
     */
    xdc_runtime_Startup__EXECFXN__C = 1;
    xdc_runtime_Startup__RESETFXN__C = 1;
    
    
    SECTIONS
    {
        .bootVecs:  type = DSECT
        .vecs: load > 0x20000000
        .resetVecs: load > 0x100000
    
    
    
        xdc.meta: type = COPY
    }
    
    

  • Thank you for attaching the files.

    Your TM4C129ENCPDT.cmd has the following:

    MEMORY
    {
    FLASH (RX) : origin = 0x00010000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    Did you edit/modify the FLASH origin intentionally? I ask because the FLASH original is typically at address 0x0 by default and the BIOS.resetVecs section gets allocated to 0x0 (in linker.cmd). I believe the modified flash origin is the cause of the errors.

    It also appears that the TM4C129ENCPDT.cmd you are using is based off the .cmd files in TivaWare. For TI-RTOS projects, I would instead recommend using the linker command files packaged with TI-RTOS for TivaC. You can find it in the \products\bios_6_45_xx_xx\packages\ti\platforms\tiva\include directory.

    Could you try replacing your TM4C129ENCPDT.cmd with the one from the above BIOS directory and let us know if that resolves the error?

  • Hi AartiG,

    I have checked the directory u mentioned and found out this in  TM4C129ENCPDT.cmd -----


    MEMORY
    {
    FLASH (RX) : origin = 0x00000000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    /* Section allocation in memory */

    SECTIONS
    {
    .text : > FLASH
    #ifdef __TI_COMPILER_VERSION
    #if __TI_COMPILER_VERSION >= 15009000
    .TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT)
    #endif
    #endif
    .const : > FLASH
    .cinit : > FLASH
    .pinit : > FLASH
    .init_array : > FLASH

    .data : > SRAM
    .bss : > SRAM
    .sysmem : > SRAM
    .stack : > SRAM
    }

    Here also they have mentioned the same. 

  • What you show does not match the linker command file TM4C129ENCPDT.txt attached to your post dated Sep 5.  The attachment shows this ...

    MEMORY
    {
        FLASH (RX) : origin = 0x00010000, length = 0x00100000
        SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }
    

    Note how the base address of FLASH is not 0.  Carefully check to see which one is actually used when you build.

    Thanks and regards,

    -George

  • OK. 

    George Mock said:

    What you show does not match the linker command file TM4C129ENCPDT.txt attached to your post dated Sep 5.  The attachment shows this ...

    1
    2
    3
    4
    5
    MEMORY
    {
        FLASH (RX) : origin = 0x00010000, length = 0x00100000
        SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    I WANT TO USE IN THIS WAY. hOW TO REMOVE THIS ERROR

  • Let me try to explain again what scenario could trigger the linker error you reported. The BIOS generated linker.cmd does some default placements of certain sections, one among them is .resetVecs that is allocated to address 0x0 by default. If the placement of any of these sections is outside the defined memory map ( as defined in TM4C129ENCPDT.cmd, in your case) then an error may be triggered. For example, if .resetVecs is placed at address 0x0 but there is no MEMORY defined for 0x0, that would trigger an error.

    In your linker.cmd I see .resetVecs allocated to 0x100000 and not the default 0x0. Was this intentionally changed via the BIOS configuration .cfg file as described in this post

    In summary, so long as the section allocations in linker.cmd lie within the memory ranges defined in your TM4C129ENCPDT.cmd you should be fine. 

    Let us know if this helps.

  • It is a bit contradicting I think. 

    My linker.cmd looks like this - 

    SECTIONS
    {
    .bootVecs: type = DSECT
    .vecs: load > 0x20000000
    .resetVecs: load > 0x0

    xdc.meta: type = COPY
    }

    My TM4C129ENCPDT.cmd looks like this. 

    MEMORY
    {
    FLASH (RX) : origin = 0x00010000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    Now as per you, my memory starts from 0x10000 and the reset vector is at 0x00. So, it should not throw any error. But the same error is there. Sorry previosly attached file I am having confusions. Dont go through those files. 

  • AKhilesh Gangwar said:

    My linker.cmd looks like this - 

    SECTIONS
    {
    .bootVecs: type = DSECT
    .vecs: load > 0x20000000
    .resetVecs: load > 0x0

    xdc.meta: type = COPY
    }

    My TM4C129ENCPDT.cmd looks like this. 

    MEMORY
    {
    FLASH (RX) : origin = 0x00010000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    This is exactly the scenario that would generate the error because the section .resetVecs is allocated to 0x0 but there is no MEMORY defined for address 0x0.

    You can fix it by making one of the below changes (not both):

    1) Modify the FLASH memory range in linker command file to include address 0x0, like so:

    MEMORY
    {
    FLASH (RX) : origin = 0x00000000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    OR

    2) Change the allocation of .resetVecs to an address within the FLASH memory map, by adding these lines to the BIOS .cfg file

    var HwiM3 = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
    HwiM3.resetVectorAddress = 0x00010000;

  • Thanks AartiG. Now I got what was happening in clear ways.