# Sample Linker Command File for CodeWarrior for ColdFire
# Memory ranges
MEMORY {
vectorram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00000500
code (RX) : ORIGIN = 0x20000500, LENGTH = 0
userram (RWX) : ORIGIN = 0x20006000, LENGTH = 0
}
SECTIONS {
# Heap and Stack sizes definition
___heap_size = 0x400;
___stack_size = 0x400;
# MCF5213 Derivative Memory map definitions from linker command files:
# __IPSBAR, __RAMBAR, __RAMBAR_SIZE, __FLASHBAR, __FLASHBAR_SIZE linker
# symbols must be defined in the linker command file.
# Memory Mapped Registers (IPSBAR= 0x40000000)
___IPSBAR = 0x40000000;
# Memory ranges
MEMORY {
vectorram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00000500
code (RX) : ORIGIN = AFTER(vectorram), LENGTH = 0
userram (RWX) : ORIGIN = AFTER(code), LENGTH = 0
}
SECTIONS {
# Heap and Stack sizes definition
___heap_size = 0x400;
___stack_size = 0x400;
Link Error : Cannot write into segment codeAny help on this appreciated.
The section .code appears in an AFTER clause
Link Error : Cannot write into segment vectorram
The section .vectorram appears in an AFTER clause
Link Error : Cannot write into segment vectorram
The section .vectors appears in an AFTER clause
Link Error : Cannot write into segment code
The section .text appears in an AFTER clause
Link failed.
# Sample Linker Command File for CodeWarrior for ColdFireI commented out lines that used to specify section splits with the ## symbols.
# Memory ranges
MEMORY {
vectorram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00000500
code (RWX) : ORIGIN = 0x20000500, LENGTH = 0x00007B00
## userram (RWX) : ORIGIN = AFTER(code), LENGTH = 0
}
SECTIONS {
# Heap and Stack sizes definition
___heap_size = 0x400;
___stack_size = 0x400;
# MCF5213 Derivative Memory map definitions from linker command files:
# __IPSBAR, __RAMBAR, __RAMBAR_SIZE, __FLASHBAR, __FLASHBAR_SIZE linker
# symbols must be defined in the linker command file.
# Memory Mapped Registers (IPSBAR= 0x40000000)
___IPSBAR = 0x40000000;
# 32 Kbytes Internal SRAM
___RAMBAR = 0x20000000;
___RAMBAR_SIZE = 0x00008000;
# 256 KByte Internal Flash Memory
___FLASHBAR = 0x00000000;
___FLASHBAR_SIZE = 0x00040000;
## .userram : {} > userram
.code : {} > code
.vectorram : {} > vectorram
.vectors :
{
vectors.s (.text)
. = ALIGN (0x4);
} >> vectorram
.text :
{
*(.text)
. = ALIGN (0x4);
*(.rodata)
. = ALIGN (0x4);
## } >> code
##
##
## .data :
## {
___DATA_ROM = .;
___DATA_RAM = .;
. = ALIGN(0x4);
*(.exception)
. = ALIGN(0x4);
__exception_table_start__ = .;
EXCEPTION
__exception_table_end__ = .;
___sinit__ = .;
STATICINIT
__START_DATA = .;
*(.data)
. = ALIGN (0x4);
__END_DATA = .;
__START_SDATA = .;
*(.sdata)
. = ALIGN (0x4);
__END_SDATA = .;
___DATA_END = .;
__SDA_BASE = .;
. = ALIGN (0x4);
## } >> userram
##
## .bss :
## {
___BSS_START = .;
__START_SBSS = .;
*(.sbss)
. = ALIGN (0x4);
*(SCOMMON)
__END_SBSS = .;
__START_BSS = .;
*(.bss)
. = ALIGN (0x4);
*(COMMON)
__END_BSS = .;
___BSS_END = .;
. = ALIGN(0x4);
## } >> userram
##
## .custom :
## {
___HEAP_START = .;
___heap_addr = ___HEAP_START;
___HEAP_END = ___HEAP_START + ___heap_size;
___SP_END = ___HEAP_END;
___SP_INIT = ___SP_END + ___stack_size;
. = ALIGN (0x4);
## } >> userram
} >> code
___VECTOR_RAM = ADDR(.vectorram);
__SP_INIT = ___SP_INIT;
__S_romp = 0x0;
}