mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-05-08 06:09:05 -04:00
104 lines
2.3 KiB
Plaintext
104 lines
2.3 KiB
Plaintext
# NOTE: The debugger uses the Illegal Instruction Vector to stop.
|
|
# A small subroutine is written at the location VBR+0x408-VBR+0x40B
|
|
# to handle the exception. The Illegal Instruction Vector in
|
|
# the the vector table at VBR+0x10 is then pointed to it. When the
|
|
# debugger encounters an illegal instruction, it jumps to this
|
|
# subroutine, which ends with an RTE, then exits.
|
|
# Do not overwrite this area of memory otherwise the debugger may not
|
|
# exit properly.
|
|
# */
|
|
|
|
MEMORY
|
|
{
|
|
vectorflash(RX) : ORIGIN = 0x00000000, LENGTH = 0x00000418
|
|
|
|
flash (RX) : ORIGIN = 0x00000420, LENGTH = 0x0007FC00
|
|
vectorram(RWX) : ORIGIN = 0x20000000, LENGTH = 0x00000400
|
|
sram (RWX) : ORIGIN = 0x20000400, LENGTH = 0x0000FA00
|
|
ipsbar (RWX) : ORIGIN = 0x40000000, LENGTH = 0x0
|
|
}
|
|
|
|
SECTIONS
|
|
{
|
|
.ipsbar : {} > ipsbar
|
|
|
|
.vectorflash :
|
|
{
|
|
mcf5225x_vectors.s (.text)
|
|
} > vectorflash
|
|
|
|
.flash :
|
|
{
|
|
*(.text)
|
|
. = ALIGN(0x10);
|
|
*(.rodata)
|
|
|
|
___DATA_ROM = .;
|
|
} > flash
|
|
|
|
.data : AT(___DATA_ROM)
|
|
{
|
|
___DATA_RAM = . ;
|
|
|
|
*(.exception)
|
|
. = ALIGN(0x10);
|
|
__exception_table_start__ = .;
|
|
EXCEPTION
|
|
__exception_table_end__ = .;
|
|
|
|
___sinit__ = .;
|
|
STATICINIT
|
|
|
|
*(.data)
|
|
*(.relocate_code)
|
|
. = 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(.vectorflash);
|
|
___FLASH_SIZE = 0x00080000;
|
|
___SRAM = 0x20000400;
|
|
___SRAM_SIZE = 0x0000FC00;
|
|
|
|
___VECTOR_RAM = 0x20000000;
|
|
___IPSBAR = ADDR(.ipsbar);
|
|
|
|
___SP_SIZE = 0x200;
|
|
___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;
|
|
}
|