You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.3 KiB
Plaintext
115 lines
2.3 KiB
Plaintext
# Sample Linker Command File for CodeWarrior for ColdFire MCF51CN128
|
|
|
|
# Memory ranges
|
|
|
|
MEMORY {
|
|
code (RX) : ORIGIN = 0x00000410, LENGTH = 0x0001FBF0
|
|
userram (RWX) : ORIGIN = 0x00800000, LENGTH = 0x00006000
|
|
}
|
|
|
|
SECTIONS {
|
|
|
|
# Heap and Stack sizes definition
|
|
___heap_size = 0x04;
|
|
___stack_size = 0x0200;
|
|
|
|
# MCF51CN128 Derivative Memory map definitions from linker command files:
|
|
# ___RAM_ADDRESS, ___RAM_SIZE, ___FLASH_ADDRESS, ___FLASH_SIZE linker
|
|
# symbols must be defined in the linker command file.
|
|
|
|
# 24 Kbytes Internal SRAM
|
|
___RAM_ADDRESS = 0x00800000;
|
|
___RAM_SIZE = 0x00006000;
|
|
|
|
# 128 KByte Internal Flash Memory
|
|
___FLASH_ADDRESS = 0x00000000;
|
|
___FLASH_SIZE = 0x00020000;
|
|
|
|
.userram : {} > userram
|
|
.code : {} > code
|
|
|
|
.text :
|
|
{
|
|
*(.text)
|
|
. = ALIGN (0x4);
|
|
*(.rodata)
|
|
. = ALIGN (0x4);
|
|
___ROM_AT = .;
|
|
___DATA_ROM = .;
|
|
} >> code
|
|
|
|
.data : AT(___ROM_AT)
|
|
{
|
|
___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
|
|
|
|
__SP_INIT = ___SP_INIT;
|
|
|
|
___SP_AFTER_RESET = __SP_INIT;
|
|
|
|
_romp_at = ___ROM_AT + SIZEOF(.data);
|
|
.romp : AT(_romp_at)
|
|
{
|
|
__S_romp = _romp_at;
|
|
WRITEW(___ROM_AT);
|
|
WRITEW(ADDR(.data));
|
|
WRITEW(SIZEOF(.data));
|
|
WRITEW(0);
|
|
WRITEW(0);
|
|
WRITEW(0);
|
|
}
|
|
}
|