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.

MSP432P401R: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section.

Part Number: MSP432P401R

Hello There,

I've written my OTA application. Getting below error while building the project.

<a href="file:/C:/ti/ccs1010/ccs/tools/compiler/dmed/HTML/10099.html">#10099-D</a>  program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment fails for section ".resetVecs" size 0x3c, overlaps with ".TI.bound:flashBuf0", size 0x3000 (page 0).


1. Linker File

--retain=interruptVectors

--stack_size=1024   /* C stack is also used for ISR stack */

HEAPSIZE = 0x8000;  /* Size of heap buffer used by HeapMem */

MEMORY
{
    MAIN       (RX) : origin = 0x00008000, length = 0x00040000
    INFO       (RX) : origin = 0x00200000, length = 0x00004000
    ALIAS
    {
    SRAM_CODE  (RWX): origin = 0x01000000
    SRAM_DATA  (RW) : origin = 0x20000000
    } length = 0x00010000
}

/* Section allocation in memory */

SECTIONS
{
    .text   :   > MAIN
    .TI.ramfunc : {} load=MAIN, run=SRAM_CODE, table(BINIT)
    .const  :   > MAIN
    .cinit  :   > MAIN
    .pinit  :   > MAIN
    .init_array : > MAIN

    .data   :   > SRAM_DATA
    .bss    :   > SRAM_DATA
    .sysmem :   > SRAM_DATA

    /* Heap buffer used by HeapMem */
    .priheap   : {
        __primary_heap_start__ = .;
        . += HEAPSIZE;
        __primary_heap_end__ = .;
    } > SRAM_DATA align 8

    .stack  :   > SRAM_DATA (HIGH)
}

/* Symbolic definition of the WDTCTL register for RTS */
WDTCTL_SYM = 0x4000480C;

2. TIRTOS build configs.

/* ================ Reset configuration ================ */
var Reset = xdc.useModule("xdc.runtime.Reset");
/*
 * This function is used when a boot loader is used
 */
Reset.fxns[Reset.fxns.length++] = "&otaResetFunction";

/* ================ Vector Table re-location ================ */
var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
m3Hwi.resetVectorAddress = 0x8000; /* App base */

3. otaResetFunction defined in main

#if defined(__TI_COMPILER_VERSION__) || defined(__GNUC__)
extern uint32_t ti_sysbios_family_arm_m3_Hwi_resetVectors;
int otaResetFunction(void)
#elif defined(__IAR_SYSTEMS_ICC__)
extern uint32_t __intvec_start__;
__interwork int __low_level_init(void)
#endif
{
    /* Use Application the interrupt vector */
#if defined(__TI_COMPILER_VERSION__) || defined(__GNUC__)
    SCB->VTOR = (uint32_t) &ti_sysbios_family_arm_m3_Hwi_resetVectors;
#elif defined(__IAR_SYSTEMS_ICC__)
    SCB->VTOR = (uint32_t) &__intvec_start__;
#endif
    return(1);
}

 

It builds fine when reset and vector configuration from tirtos builds config is removed and keeping the starting main address to 0x00000000 from 0x00008000.

Any help would be highly appreciated.

Regards,

Keshav Aggarwal

**Attention** This is a public forum