ENTRY(vector_table) MEMORY { FLASH (rx) : ORIGIN = FLASH_BASE, LENGTH = FLASH_LEN #if STM32F == 1 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K #elif STM32F == 7 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K EXT_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 192K #endif } SECTIONS { .text : { _stext = .; *(.vector_table) *(.text) *(.text*) *(.rodata) *(.rodata*) KEEP (*(.init)) KEEP (*(.fini)) . = ALIGN(4); _etext = .; } >FLASH .data : AT (_etext) { . = ALIGN(4); _sdat = .; *(.data) *(.data*) . = ALIGN(4); _edat = .; _ldat = LOADADDR(.data); } >RAM .bss : { . = ALIGN(8); _irq_stackbottom = .; . = . + 512; _irq_stacktop = .; _thread_stackbottom = .; . = . + 1024; _thread_stacktop = .; _sbss = .; *(.bss) *(.bss*) . = ALIGN(4); _ebss = .; } >RAM #if STM32F == 7 .ext_ram (NOLOAD) : { . = ALIGN(8); _ext_ram_start = .; *(.ext_ram) . = ALIGN(4); _ext_ram_end = .; } >EXT_RAM #endif /DISCARD/ : { *(.eh_frame) } .ARM.attributes 0 : { *(.ARM.attributes) } }