Hi,
No, you can't do that, because your lcf file says that you have 1280 bytes (vector_ram section) reserved for exception table relocation, and the user ram is 0x8000 - 0x0500 so 0x7B00 (5223x family got 32kbytes sram), and you said to the linker that you have 34048 bytes.
SRAM amount is shared between heap, stack and user datas, so you have to play in the lcf file with stack size and heap size defintions (___SP_SIZE, ___SP_END, ___HEAP_START, ___HEAP_END, etc...) my lcf file looks like this for a MCF5213 (same family 256Kb flash, 32kb SRAM)
Code:MEMORY
{
boot (RX) : ORIGIN = 0x00000000, LENGTH = 0x00004000 /* bootloader location */
flash (RX) : ORIGIN = 0x00004000, LENGTH = 0x0003BFD8 /* user flash */
appId (RX) : ORIGIN = 0x0003FFC0, LENGTH = 0x00000040 /* application identication */
vram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00000400 /* exception table relocation */
sram (RWX) : ORIGIN = 0x20000400, LENGTH = 0x00007C00 /* user ram */
ipsbar (RWX) : ORIGIN = 0x40000000, LENGTH = 0x0
}
SECTIONS
{
.ipsbar : {} > ipsbar
.vectors :
{
vectors.s (.text)
. = ALIGN (0x10);
} > flash
.text :
{
*(.text)
.= ALIGN(0x10);
*(.rodata)
.= ALIGN(0x10);
___DATA_ROM = .;
__S_romp = .;
} >> flash
.app_id :
{
*(.appident)
} > appId
.data : AT(ADDR(.text)+SIZEOF(.text))
{
___DATA_RAM = .;
*(.exception)
. = ALIGN(0x10);
__exception_table_start__ = .;
EXCEPTION
__exception_table_end__ = .;
___sinit__ = .;
STATICINIT
*(.data)
. = ALIGN (0x10);
___DATA_END = .;
__START_SDATA = .;
*(.sdata)
. = ALIGN (0x10);
__END_SDATA = .;
__SDA_BASE = .;
. = ALIGN(0x10);
} > sram
.bss :
{
. = ALIGN(0x10);
__START_SBSS = .;
*(.sbss)
*(SCOMMON)
__END_SBSS = .;
. = ALIGN(0x10);
__START_BSS = .;
*(.bss)
*(COMMON)
__END_BSS = .;
___BSS_START = __START_SBSS;
___BSS_END = __END_BSS;
. = ALIGN(0x10);
} >> sram
___FLASH = ADDR(.vectors);
___FLASH_SIZE = 0x0003E000;
___SRAM = ADDR(sram);
___SRAM_SIZE = 0x00007C00;
___VECTOR_RAM = ADDR(vram);
___IPSBAR = ADDR(.ipsbar);
___SP_SIZE = 0x400;
___HEAP_START = .;
___HEAP_END = ___SRAM + ___SRAM_SIZE - ___SP_SIZE;
___SP_END = ___HEAP_END;
___SP_INIT = ___SP_END + ___SP_SIZE;
___heap_addr = ___HEAP_START;
___heap_size = ___HEAP_END - ___HEAP_START ;
__SP_INIT = ___SP_INIT;
}I link fp_coldfire.a, C_4i_CF_Runtime.a and C_4i_CF_MSL.a libraries (tuned with floating point support). And don't forget this document is very useful : C:\Program Files\Freescale\CodeWarrior for ColdFire V6.3\Help\PDF\ColdFire_Build_Tools_Reference.pdf
regards,
Emmanuel