| . = ALIGN(16); | . = ALIGN(16); | ||||
| } > FLASH | } > FLASH | ||||
| .text : { | |||||
| .text.itcm : { | |||||
| . = . + 32; /* MPU to trap NULL pointer deref */ | . = . + 32; /* MPU to trap NULL pointer deref */ | ||||
| *(.fastrun) | *(.fastrun) | ||||
| *(.text*) | *(.text*) | ||||
| . = ALIGN(16); | . = ALIGN(16); | ||||
| } > ITCM AT> FLASH | } > ITCM AT> FLASH | ||||
| .vectorsRAM (NOLOAD) : { | |||||
| . = ALIGN(4); | |||||
| *(.vectorsRAM*) | |||||
| } > DTCM | |||||
| .data : { | .data : { | ||||
| *(.rodata*) | *(.rodata*) | ||||
| *(.data*) | *(.data*) | ||||
| . = ALIGN(16); | . = ALIGN(16); | ||||
| } > RAM | } > RAM | ||||
| _stext = ADDR(.text); | |||||
| _etext = ADDR(.text) + SIZEOF(.text); | |||||
| _stextload = LOADADDR(.text); | |||||
| _stext = ADDR(.text.itcm); | |||||
| _etext = ADDR(.text.itcm) + SIZEOF(.text.itcm); | |||||
| _stextload = LOADADDR(.text.itcm); | |||||
| _sdata = ADDR(.data); | _sdata = ADDR(.data); | ||||
| _edata = ADDR(.data) + SIZEOF(.data); | _edata = ADDR(.data) + SIZEOF(.data); | ||||
| _heap_start = ADDR(.bss.dma) + SIZEOF(.bss.dma); | _heap_start = ADDR(.bss.dma) + SIZEOF(.bss.dma); | ||||
| _heap_end = ORIGIN(RAM) + LENGTH(RAM); | _heap_end = ORIGIN(RAM) + LENGTH(RAM); | ||||
| _itcm_block_count = (SIZEOF(.text) + 0x7FFE) >> 15; | |||||
| _itcm_block_count = (SIZEOF(.text.itcm) + 0x7FFE) >> 15; | |||||
| _flexram_bank_config = 0xAAAAAAAA | ((1 << (_itcm_block_count * 2)) - 1); | _flexram_bank_config = 0xAAAAAAAA | ((1 << (_itcm_block_count * 2)) - 1); | ||||
| _estack = ORIGIN(DTCM) + ((16 - _itcm_block_count) << 15); | _estack = ORIGIN(DTCM) + ((16 - _itcm_block_count) << 15); | ||||
| _flashimagelen = SIZEOF(.text.progmem) + SIZEOF(.text) + SIZEOF(.data); | |||||
| _flashimagelen = SIZEOF(.text.progmem) + SIZEOF(.text.itcm) + SIZEOF(.data); | |||||
| _teensy_model_identifier = 0x24; | _teensy_model_identifier = 0x24; | ||||
| .debug_info 0 : { *(.debug_info) } | .debug_info 0 : { *(.debug_info) } |