Hi All:
I am using CC3200 to do development, and the development tool is IAR. but when my binary size exceed 62KB, I saw IAR report below error:
Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x3c194 bytes (max align 0x400) in <[0x20004000-0x2003ffff]> (total uncommitted
space 0x3bc00).
Error while running Linker
below are my icf file content, I want to know what's the max binary size I can build on CC3200, and what's the problem in my icf file, Thanks
NOTE: in my project: CC3200_ES_1_2_1=0; and macro "Flash" is not defined
//
// Define a memory region that covers the entire 4 GB addressible space of the
// processor.
//
define memory mem with size = 4G;
//
// Define a region for the on-chip flash.
//
define region FLASH = mem:[from 0x01000000 to 0x01010000];
if(CC3200_ES_1_2_1)
{
define region SRAM = mem:[from 0x20000000 to 0x20030000];
}
else
{
//define region SRAM = mem:[from 0x20004000 to 0x20030000];
define region SRAM = mem:[from 0x20004000 to 0x2003FFFF];
}
// Define a block for the heap. The size should be set to something other
// than zero if things in the C library that require the heap are used.
//
//2015-12-09 change to large the heap size = 170KB,original is 96KB
//define block HEAP with alignment = 8, size = 0x00018000 { };
define block HEAP with alignment = 8, size = 0x0002A800 { };
//
// Indicate that the read/write values should be initialized by copying from
// flash.
//
initialize by copy { readwrite };
//
// Indicate that the noinit values should be left alone. This includes the
// stack, which if initialized will destroy the return address from the
// initialization code, causing the processor to branch to zero and fault.
//
do not initialize { section .noinit };
//
// Define Flash=0 in Option->Linker->Config to place code in SRAM or
// Flash=1 to place code in flash
//
if (!isdefinedsymbol(Flash))
{
//
// Place the interrupt vectors at the start of SRAM.
//
place at start of SRAM { readonly section .intvec };
//
// Place the remainder of the read-only items into SRAM.
//
place in SRAM { readonly };
//
// Place all read/write items into SRAM.
//
place in SRAM { readwrite, block HEAP };
}
else
{
//
// Place the interrupt vectors at the start of flash.
//
place at start of FLASH { readonly section .intvec };
//
// Place the remainder of the read-only items into flash.
//
place in FLASH { readonly };
//
// Place all read/write items into SRAM.
//
place in SRAM { readwrite, block HEAP };
}