155 lines
3.8 KiB
Plaintext
155 lines
3.8 KiB
Plaintext
# Sample Linker Command File for CodeWarrior for ColdFire
|
|
|
|
KEEP_SECTION {.vectortable}
|
|
|
|
# Memory ranges
|
|
|
|
MEMORY {
|
|
userram (RWX) : ORIGIN = 0x00010000, LENGTH = 0x10000000
|
|
code (RX) : ORIGIN = 0xE0000000, LENGTH = 0x00100000
|
|
}
|
|
|
|
SECTIONS {
|
|
|
|
# Heap and Stack sizes definition
|
|
___heap_size = 0x10000;
|
|
___stack_size = 0x10000;
|
|
|
|
# Board Memory map definitions from linker command files:
|
|
# __SDRAM,__SDRAM_SIZE, __CODE_FLASH, __CODE_FLASH_SIZE
|
|
# linker symbols must be defined in the linker command file.
|
|
|
|
#Init CS0 (BootFLASH @ E000_0000 - E07F_FFFF 8Mbytes)
|
|
___BOOT_FLASH = 0xE0000000;
|
|
___BOOT_FLASH_SIZE = 0x00800000;
|
|
#SDRAM Initialization @ 0000_0000 - 1FFF_FFFF 512Mbytes
|
|
___SDRAM = 0x00000000;
|
|
___SDRAM_SIZE = 0x20000000;
|
|
|
|
#VIDEO RAM BASIS
|
|
___VRAM = 0x60000000;
|
|
|
|
# MCF5475 Derivative Memory map definitions from linker command files:
|
|
# __MBAR, __MMUBAR, __RAMBAR0, __RAMBAR0_SIZE, __RAMBAR1, __RAMBAR1_SIZE
|
|
# linker symbols must be defined in the linker command file.
|
|
|
|
# Memory mapped registers
|
|
___MBAR = 0xFF000000;
|
|
___MMUBAR = 0xFF040000;
|
|
# 4KB on-chip Core SRAM0: -> exception table and exception stack
|
|
___RAMBAR0 = 0xFF100000;
|
|
___RAMBAR0_SIZE = 0x00001000;
|
|
# 4KB on-chip Core SRAM1: -> modified code
|
|
___RAMBAR1 = 0xFF101000;
|
|
___RAMBAR1_SIZE = 0x00001000;
|
|
|
|
|
|
# Systemveriablem:******************************************
|
|
# RAMBAR0 0 bis 0x7FF -> exception vectoren
|
|
_rt_mod = ___RAMBAR0 + 0x800;
|
|
_rt_ssp = ___RAMBAR0 + 0x804;
|
|
_rt_usp = ___RAMBAR0 + 0x808;
|
|
_rt_vbr = ___RAMBAR0 + 0x80C; # (8)01
|
|
_rt_cacr = ___RAMBAR0 + 0x810; # 002
|
|
_rt_asid = ___RAMBAR0 + 0x814; # 003
|
|
_rt_acr0 = ___RAMBAR0 + 0x818; # 004
|
|
_rt_acr1 = ___RAMBAR0 + 0x81c; # 005
|
|
_rt_acr2 = ___RAMBAR0 + 0x820; # 006
|
|
_rt_acr3 = ___RAMBAR0 + 0x824; # 007
|
|
_rt_mmubar = ___RAMBAR0 + 0x828; # 008
|
|
_rt_sr = ___RAMBAR0 + 0x82c;
|
|
_d0_save = ___RAMBAR0 + 0x830;
|
|
_a7_save = ___RAMBAR0 + 0x834;
|
|
_video_tlb = ___RAMBAR0 + 0x838;
|
|
_video_sbt = ___RAMBAR0 + 0x83C;
|
|
_rt_mbar = ___RAMBAR0 + 0x844; # (c)0f
|
|
#***********************************************************
|
|
|
|
# 32KB on-chip System SRAM
|
|
___SYS_SRAM = 0xFF010000;
|
|
___SYS_SRAM_SIZE = 0x00008000;
|
|
|
|
___SUP_SP = ___RAMBAR0 + ___RAMBAR0_SIZE - 4;
|
|
|
|
.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;
|
|
|
|
_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);
|
|
}
|
|
}
|