|
|
|
|
|
|
|
|
|
|
|
MEMORY |
|
|
|
|
|
{ |
|
|
|
|
|
ITCM (rwx): ORIGIN = 0x00000000, LENGTH = 128K |
|
|
|
|
|
DTCM (rwx): ORIGIN = 0x20000000, LENGTH = 128K |
|
|
|
|
|
RAM (rwx): ORIGIN = 0x20200000, LENGTH = 256K |
|
|
|
|
|
FLASH (rwx): ORIGIN = 0x60000000, LENGTH = 1536K |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ENTRY(ImageVectorTable) |
|
|
|
|
|
|
|
|
|
|
|
SECTIONS |
|
|
|
|
|
{ |
|
|
|
|
|
.text.progmem : { |
|
|
|
|
|
KEEP(*(.flashconfig)) |
|
|
|
|
|
FILL(0xFF) |
|
|
|
|
|
. = ORIGIN(FLASH) + 0x1000; |
|
|
|
|
|
KEEP(*(.ivt)) |
|
|
|
|
|
KEEP(*(.bootdata)) |
|
|
|
|
|
KEEP(*(.vectors)) |
|
|
|
|
|
KEEP(*(.startup)) |
|
|
|
|
|
*(.progmem*) |
|
|
|
|
|
. = ALIGN(4); |
|
|
|
|
|
KEEP(*(.init)) |
|
|
|
|
|
__preinit_array_start = .; |
|
|
|
|
|
KEEP (*(.preinit_array)) |
|
|
|
|
|
__preinit_array_end = .; |
|
|
|
|
|
__init_array_start = .; |
|
|
|
|
|
KEEP (*(.init_array)) |
|
|
|
|
|
__init_array_end = .; |
|
|
|
|
|
. = ALIGN(16); |
|
|
|
|
|
} > FLASH |
|
|
|
|
|
|
|
|
|
|
|
.text : { |
|
|
|
|
|
. = . + 32; /* MPU to trap NULL pointer deref */ |
|
|
|
|
|
*(.fastrun) |
|
|
|
|
|
*(.text*) |
|
|
|
|
|
. = ALIGN(16); |
|
|
|
|
|
} > ITCM AT> FLASH |
|
|
|
|
|
|
|
|
|
|
|
.vectorsRAM (NOLOAD) : { |
|
|
|
|
|
. = ALIGN(4); |
|
|
|
|
|
*(.vectorsRAM*) |
|
|
|
|
|
} > DTCM |
|
|
|
|
|
|
|
|
|
|
|
.data : { |
|
|
|
|
|
*(.rodata*) |
|
|
|
|
|
*(.data*) |
|
|
|
|
|
. = ALIGN(16); |
|
|
|
|
|
} > DTCM AT> FLASH |
|
|
|
|
|
|
|
|
|
|
|
.bss ALIGN(4) : { |
|
|
|
|
|
*(.bss*) |
|
|
|
|
|
*(COMMON) |
|
|
|
|
|
. = ALIGN(32); |
|
|
|
|
|
. = . + 32; /* MPU to trap stack overflow */ |
|
|
|
|
|
} > DTCM |
|
|
|
|
|
|
|
|
|
|
|
.bss.dma (NOLOAD) : { |
|
|
|
|
|
*(.dmabuffers) |
|
|
|
|
|
. = ALIGN(16); |
|
|
|
|
|
} > RAM |
|
|
|
|
|
|
|
|
|
|
|
_stext = ADDR(.text); |
|
|
|
|
|
_etext = ADDR(.text) + SIZEOF(.text); |
|
|
|
|
|
_stextload = LOADADDR(.text); |
|
|
|
|
|
|
|
|
|
|
|
_sdata = ADDR(.data); |
|
|
|
|
|
_edata = ADDR(.data) + SIZEOF(.data); |
|
|
|
|
|
_sdataload = LOADADDR(.data); |
|
|
|
|
|
|
|
|
|
|
|
_estack = ORIGIN(DTCM) + LENGTH(DTCM); |
|
|
|
|
|
|
|
|
|
|
|
_sbss = ADDR(.bss); |
|
|
|
|
|
_ebss = ADDR(.bss) + SIZEOF(.bss); |
|
|
|
|
|
|
|
|
|
|
|
_heap_start = ADDR(.bss.dma) + SIZEOF(.bss.dma); |
|
|
|
|
|
_heap_end = ORIGIN(RAM) + LENGTH(RAM); |
|
|
|
|
|
|
|
|
|
|
|
_flashimagelen = SIZEOF(.text.progmem) + SIZEOF(.text) + SIZEOF(.data); |
|
|
|
|
|
_teensy_model_identifier = 0x24; |
|
|
|
|
|
|
|
|
|
|
|
.debug_info 0 : { *(.debug_info) } |
|
|
|
|
|
.debug_abbrev 0 : { *(.debug_abbrev) } |
|
|
|
|
|
.debug_line 0 : { *(.debug_line) } |
|
|
|
|
|
.debug_frame 0 : { *(.debug_frame) } |
|
|
|
|
|
.debug_str 0 : { *(.debug_str) } |
|
|
|
|
|
.debug_loc 0 : { *(.debug_loc) } |
|
|
|
|
|
|
|
|
|
|
|
} |