| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | ENTRY(vector_table)MEMORY{  FLASH (rx)      : ORIGIN = FLASH_BASE, LENGTH = FLASH_LEN#if MCU == STM32F1  RAM (rwx)       : ORIGIN = 0x20000000, LENGTH = 20K#elif MCU == STM32F7  RAM (rwx)       : ORIGIN = 0x20000000, LENGTH = 64K  EXT_RAM (rwx)   : ORIGIN = 0x20010000, LENGTH = 192K#elif MCU == AT32F4  RAM (rwx)       : ORIGIN = 0x20000000, LENGTH = 32K#endif}SECTIONS{  .text : {    _stext = .;    *(.vector_table)    *(.text)    *(.text*)    *(.rodata)    *(.rodata*)    KEEP (*(.init))    KEEP (*(.fini))    . = ALIGN(4);    _etext = .;  } >FLASH#if MCU == STM32F1 || MCU == AT32F4  .flags : {    _reset_flag = .;    . = . + 4;  } >RAM#endif  .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 MCU == STM32F7  .ext_ram (NOLOAD) : {    _ext_ram_start = .;    _reset_flag = .;    . = . + 4;    *(.ext_ram)    . = ALIGN(4);    _ext_ram_end = .;  } >EXT_RAM#endif  /DISCARD/ : {    *(.eh_frame)  }  .ARM.attributes 0 : { *(.ARM.attributes) }}
 |