diff --git a/src/main/target/link/stm32_flash_f405.ld b/src/main/target/link/stm32_flash_f405.ld index a68b4c113..d7ba9ca86 100644 --- a/src/main/target/link/stm32_flash_f405.ld +++ b/src/main/target/link/stm32_flash_f405.ld @@ -13,16 +13,18 @@ ENTRY(Reset_Handler) /* -0x08000000 to 0x08100000 1024K full flash, -0x08000000 to 0x080DFFFF 896K firmware, -0x080E0000 to 0x08100000 128K config, // FLASH_Sector_11 +0x08000000 to 0x080FFFFF 1024K full flash, +0x08000000 to 0x08003FFF 16K isr vector, startup code, +0x08004000 to 0x08007FFF 16K config, // FLASH_Sector_1 +0x08008000 to 0x080FFFFF 992K firmware, */ /* Specify the memory areas */ MEMORY { - FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 896K - FLASH_CONFIG (r) : ORIGIN = 0x080E0000, LENGTH = 128K + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 16K + FLASH_CONFIG (r) : ORIGIN = 0x08004000, LENGTH = 16K + FLASH1 (rx) : ORIGIN = 0x08008000, LENGTH = 992K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K @@ -32,4 +34,4 @@ MEMORY REGION_ALIAS("STACKRAM", CCM) -INCLUDE "stm32_flash.ld" +INCLUDE "stm32_flash_split.ld" \ No newline at end of file diff --git a/src/main/target/link/stm32_flash_f405_opbl.ld b/src/main/target/link/stm32_flash_f405_opbl.ld index 667d83b97..a78cf601f 100644 --- a/src/main/target/link/stm32_flash_f405_opbl.ld +++ b/src/main/target/link/stm32_flash_f405_opbl.ld @@ -13,17 +13,19 @@ ENTRY(Reset_Handler) /* -0x08000000 to 0x08100000 1024K full flash, -0x08000000 to 0x08004000 16K OPBL, -0x08004000 to 0x080DFFFF 880K firmware, -0x080E0000 to 0x08100000 128K config, // FLASH_Sector_11 +0x08000000 to 0x080FFFFF 1024K full flash, +0x08000000 to 0x08003FFF 16K OPBL, +0x08004000 to 0x08007FFF 16K isr vector, startup code, +0x08008000 to 0x0800BFFF 16K config, // FLASH_Sector_2 +0x0800C000 to 0x080FFFFF 976K firmware, */ /* Specify the memory areas */ MEMORY { - FLASH (rx) : ORIGIN = 0x08004000, LENGTH = 880K - FLASH_CONFIG (r): ORIGIN = 0x080E0000, LENGTH = 128K + FLASH (rx) : ORIGIN = 0x08004000, LENGTH = 16K + FLASH_CONFIG (r): ORIGIN = 0x08008000, LENGTH = 16K + FLASH1 (rx) : ORIGIN = 0x0800C000, LENGTH = 976K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K @@ -32,4 +34,4 @@ MEMORY REGION_ALIAS("STACKRAM", CCM) -INCLUDE "stm32_flash.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f411.ld b/src/main/target/link/stm32_flash_f411.ld index 1e8bf58c9..18684c259 100644 --- a/src/main/target/link/stm32_flash_f411.ld +++ b/src/main/target/link/stm32_flash_f411.ld @@ -13,16 +13,18 @@ ENTRY(Reset_Handler) /* -0x08000000 to 0x08080000 512K full flash, -0x08000000 to 0x0805FFFF 384K firmware, -0x08060000 to 0x08080000 128K config, +0x08000000 to 0x0807FFFF 512K full flash, +0x08000000 to 0x08003FFF 16K isr vector, startup code, +0x08004000 to 0x08007FFF 16K config, // FLASH_Sector_1 +0x08008000 to 0x0807FFFF 480K firmware, */ /* Specify the memory areas */ MEMORY { - FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 384K - FLASH_CONFIG (r) : ORIGIN = 0x08060000, LENGTH = 128K + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 16K + FLASH_CONFIG (r) : ORIGIN = 0x08004000, LENGTH = 16K + FLASH1 (rx) : ORIGIN = 0x08008000, LENGTH = 480K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K @@ -30,4 +32,4 @@ MEMORY REGION_ALIAS("STACKRAM", RAM) -INCLUDE "stm32_flash.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f411_opbl.ld b/src/main/target/link/stm32_flash_f411_opbl.ld index f8e23b4b4..4a5795911 100644 --- a/src/main/target/link/stm32_flash_f411_opbl.ld +++ b/src/main/target/link/stm32_flash_f411_opbl.ld @@ -13,17 +13,19 @@ ENTRY(Reset_Handler) /* -0x08000000 to 0x08080000 512K full flash, -0x08000000 to 0x08004000 16K OPBL, -0x08004000 to 0x0805FFFF 368K firmware, -0x08060000 to 0x08080000 128K config, +0x08000000 to 0x0807FFFF 512K full flash, +0x08000000 to 0x08003FFF 16K OPBL, +0x08004000 to 0x08007FFF 16K isr vector, startup code, +0x08008000 to 0x0800BFFF 16K config, // FLASH_Sector_2 +0x0800C000 to 0x0807FFFF 464K firmware, */ /* Specify the memory areas */ MEMORY { - FLASH (rx) : ORIGIN = 0x08004000, LENGTH = 368K - FLASH_CONFIG (r) : ORIGIN = 0x08060000, LENGTH = 128K + FLASH (rx) : ORIGIN = 0x08004000, LENGTH = 16K + FLASH_CONFIG (r) : ORIGIN = 0x08008000, LENGTH = 16K + FLASH1 (rx) : ORIGIN = 0x0800C000, LENGTH = 464K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K CCM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K @@ -32,4 +34,4 @@ MEMORY REGION_ALIAS("STACKRAM", CCM) -INCLUDE "stm32_flash.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f446.ld b/src/main/target/link/stm32_flash_f446.ld index d875a0ebc..a258aa59d 100644 --- a/src/main/target/link/stm32_flash_f446.ld +++ b/src/main/target/link/stm32_flash_f446.ld @@ -13,16 +13,18 @@ ENTRY(Reset_Handler) /* -0x08000000 to 0x08080000 512K full flash, -0x08000000 to 0x0805FFFF 384K firmware, -0x08060000 to 0x08080000 128K config, +0x08000000 to 0x0807FFFF 512K full flash, +0x08000000 to 0x08003FFF 16K isr vector, startup code, +0x08004000 to 0x08007FFF 16K config, // FLASH_Sector_1 +0x08008000 to 0x0807FFFF 480K firmware, */ /* Specify the memory areas */ MEMORY { - FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 384K - FLASH_CONFIG (r) : ORIGIN = 0x08060000, LENGTH = 128K + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 16K + FLASH_CONFIG (r) : ORIGIN = 0x08004000, LENGTH = 16K + FLASH1 (rx) : ORIGIN = 0x08008000, LENGTH = 480K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K @@ -30,4 +32,4 @@ MEMORY REGION_ALIAS("STACKRAM", RAM) -INCLUDE "stm32_flash.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f4xx.ld b/src/main/target/link/stm32_flash_f4xx.ld deleted file mode 100644 index dcb0147d2..000000000 --- a/src/main/target/link/stm32_flash_f4xx.ld +++ /dev/null @@ -1,134 +0,0 @@ - -/* Internal Memory Map*/ -MEMORY -{ - rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x00100000 - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00020000 - ram1 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x00010000 -} - -_eram = 0x20000000 + 0x00020000; -SECTIONS -{ - .text : - { - PROVIDE (isr_vector_table_base = .); - KEEP(*(.isr_vector)) - *(.text*) - - KEEP(*(.init)) - KEEP(*(.fini)) - - /* .ctors */ - *crtbegin.o(.ctors) - *crtbegin?.o(.ctors) - *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) - *(SORT(.ctors.*)) - *(.ctors) - - /* .dtors */ - *crtbegin.o(.dtors) - *crtbegin?.o(.dtors) - *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) - *(SORT(.dtors.*)) - *(.dtors) - - *(.rodata*) - - KEEP(*(.eh_fram e*)) - } > rom - - .ARM.extab : - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > rom - - __exidx_start = .; - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > rom - __exidx_end = .; - __etext = .; - - /* _sidata is used in coide startup code */ - _sidata = __etext; - - .data : AT (__etext) - { - __data_start__ = .; - - /* _sdata is used in coide startup code */ - _sdata = __data_start__; - - *(vtable) - *(.data*) - - . = ALIGN(4); - /* preinit data */ - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP(*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - - . = ALIGN(4); - /* init data */ - PROVIDE_HIDDEN (__init_array_start = .); - KEEP(*(SORT(.init_array.*))) - KEEP(*(.init_array)) - PROVIDE_HIDDEN (__init_array_end = .); - - . = ALIGN(4); - /* finit data */ - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP(*(SORT(.fini_array.*))) - KEEP(*(.fini_array)) - PROVIDE_HIDDEN (__fini_array_end = .); - - KEEP(*(.jcr*)) - . = ALIGN(4); - /* All data end */ - __data_end__ = .; - - /* _edata is used in coide startup code */ - _edata = __data_end__; - } > ram - - .bss : - { - . = ALIGN(4); - __bss_start__ = .; - _sbss = __bss_start__; - *(.bss*) - *(COMMON) - . = ALIGN(4); - __bss_end__ = .; - _ebss = __bss_end__; - } > ram - - .heap (COPY): - { - __end__ = .; - _end = __end__; - end = __end__; - *(.heap*) - __HeapLimit = .; - } > ram - - /* .stack_dummy section doesn't contains any symbols. It is only - * used for linker to calculate size of stack sections, and assign - * values to stack symbols later */ - .co_stack (NOLOAD): - { - . = ALIGN(8); - *(.co_stack .co_stack.*) - } > ram - - /* Set stack top to end of ram , and stack limit move down by - * size of stack_dummy section */ - __StackTop = ORIGIN(ram ) + LENGTH(ram ); - __StackLimit = __StackTop - SIZEOF(.co_stack); - PROVIDE(__stack = __StackTop); - - /* Check if data + heap + stack exceeds ram limit */ - ASSERT(__StackLimit >= __HeapLimit, "region ram overflowed with stack") -} \ No newline at end of file diff --git a/src/main/target/link/stm32_flash_f722.ld b/src/main/target/link/stm32_flash_f722.ld index 1e0118dfd..f3b0e5b67 100644 --- a/src/main/target/link/stm32_flash_f722.ld +++ b/src/main/target/link/stm32_flash_f722.ld @@ -12,6 +12,13 @@ /* Entry Point */ ENTRY(Reset_Handler) +/* +0x08000000 to 0x0807FFFF 512K full flash, +0x08000000 to 0x08003FFF 16K isr vector, startup code, +0x08004000 to 0x08007FFF 16K config, // FLASH_Sector_1 +0x08008000 to 0x0807FFFF 480K firmware, +*/ + /* Specify the memory areas */ MEMORY { @@ -27,4 +34,4 @@ MEMORY /* note TCM could be used for stack */ REGION_ALIAS("STACKRAM", TCM) -INCLUDE "stm32_flash_f7.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f745.ld b/src/main/target/link/stm32_flash_f745.ld index 7669df69b..306d669b4 100644 --- a/src/main/target/link/stm32_flash_f745.ld +++ b/src/main/target/link/stm32_flash_f745.ld @@ -12,6 +12,13 @@ /* Entry Point */ ENTRY(Reset_Handler) +/* +0x08000000 to 0x080FFFFF 1024K full flash, +0x08000000 to 0x08007FFF 32K isr vector, startup code, +0x08008000 to 0x0800FFFF 32K config, // FLASH_Sector_1 +0x08010000 to 0x080FFFFF 960K firmware, +*/ + /* Specify the memory areas */ MEMORY { @@ -26,4 +33,4 @@ MEMORY /* note CCM could be used for stack */ REGION_ALIAS("STACKRAM", TCM) -INCLUDE "stm32_flash_f7.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f746.ld b/src/main/target/link/stm32_flash_f746.ld index b386cf8ae..16be8311d 100644 --- a/src/main/target/link/stm32_flash_f746.ld +++ b/src/main/target/link/stm32_flash_f746.ld @@ -12,6 +12,13 @@ /* Entry Point */ ENTRY(Reset_Handler) +/* +0x08000000 to 0x080FFFFF 1024K full flash, +0x08000000 to 0x08007FFF 32K isr vector, startup code, +0x08008000 to 0x0800FFFF 32K config, // FLASH_Sector_1 +0x08010000 to 0x080FFFFF 960K firmware, +*/ + /* Specify the memory areas */ MEMORY { @@ -26,4 +33,4 @@ MEMORY /* note CCM could be used for stack */ REGION_ALIAS("STACKRAM", TCM) -INCLUDE "stm32_flash_f7.ld" +INCLUDE "stm32_flash_split.ld" diff --git a/src/main/target/link/stm32_flash_f7.ld b/src/main/target/link/stm32_flash_split.ld similarity index 99% rename from src/main/target/link/stm32_flash_f7.ld rename to src/main/target/link/stm32_flash_split.ld index bd9a67b7b..cc6d264fa 100644 --- a/src/main/target/link/stm32_flash_f7.ld +++ b/src/main/target/link/stm32_flash_split.ld @@ -1,7 +1,7 @@ /* ***************************************************************************** ** -** File : stm32_flash_f7.ld +** File : stm32_flash_split.ld ** ** Abstract : Common linker script for STM32 devices. **