Part Number: CC3220
Tool/software: TI C/C++ Compiler
Hey gurus,
I am trying to rearrange my linker file to allow me to run certain parts of my library from RAM. Below is what my .cmd looks like:
/*
* ======== CC3220SF_LAUNCHXL.cmd ========
*/
/*
* The starting address of the application. Normally the interrupt vectors
* must be located at the beginning of the application.
*/
#define SRAM_BASE 0x20000000
#define FLASH_BASE 0x01000800
-lopuslib.lib
--stack_size=4096 /*C stack is also used for ISR stack */
HEAPSIZE = 120000; /* Size of heap buffer used by HeapMem */
MEMORY
{
/* Bootloader uses FLASH_HDR during initialization */
FLASH_HDR (RWX) : origin = 0x01000000, length = 0x7FF /* 2 KB */
FLASH (RWX) : origin = 0x01000800, length = 0x0FF800 /* 1022KB */
SRAM (RWX) : origin = 0x20000000, length = 0x00040000 /*256KB 40000*/
}
/* Section allocation in memory */
SECTIONS
{
.dbghdr : > FLASH_HDR
.textetc : > FLASH
{
opuslib.lib<celt_encoder.obj>(.text)
opuslib.lib<opus_encoder.obj>(.text)
opuslib.lib<bands.obj>(.text)
}
.textlib : > SRAM
{
opuslib.lib(.text)
opuslib.lib(.data)
}
.text : > FLASH
.TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT)
.const : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.init_array : > FLASH
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
/* Heap buffer used by HeapMem */
.priheap : {
__primary_heap_start__ = .;
. += HEAPSIZE;
__primary_heap_end__ = .;
} > SRAM(HIGH) align 8
.stack : > SRAM(HIGH)
}
I notice when i do this, the map file looks to be correct, but my .bin doubles in size! this causes me to be unable to flash the device.
Is there anything I am missing when configuring my .cmd file so that the .bin generates correctly?
Thanks,