mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Rearranged flash on targets >512 kB to keep first sector from overflowing.
This commit is contained in:
parent
86a0e3cd2c
commit
b83bc86713
17 changed files with 95 additions and 56 deletions
|
@ -37,4 +37,8 @@ REGION_ALIAS("STACKRAM", CCM)
|
||||||
REGION_ALIAS("FASTRAM", CCM)
|
REGION_ALIAS("FASTRAM", CCM)
|
||||||
REGION_ALIAS("VECTAB", RAM)
|
REGION_ALIAS("VECTAB", RAM)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_split.ld"
|
/* Put various bits and bobs of data into the main chunk of flash as we have enough of it */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", FLASH1)
|
||||||
|
|
||||||
|
INCLUDE "stm32_flash_f4_split.ld"
|
||||||
|
|
|
@ -34,4 +34,8 @@ MEMORY
|
||||||
REGION_ALIAS("STACKRAM", CCM)
|
REGION_ALIAS("STACKRAM", CCM)
|
||||||
REGION_ALIAS("FASTRAM", CCM)
|
REGION_ALIAS("FASTRAM", CCM)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_split.ld"
|
/* Put various bits and bobs of data into the main chunk of flash as we have enough of it */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", FLASH1)
|
||||||
|
|
||||||
|
INCLUDE "stm32_flash_f4_split.ld"
|
||||||
|
|
|
@ -36,4 +36,8 @@ REGION_ALIAS("STACKRAM", RAM)
|
||||||
REGION_ALIAS("FASTRAM", RAM)
|
REGION_ALIAS("FASTRAM", RAM)
|
||||||
REGION_ALIAS("VECTAB", RAM)
|
REGION_ALIAS("VECTAB", RAM)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_split.ld"
|
/* Put various bits and bobs of data into the free space after the vector table in sector 0 to save flash space. */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", FLASH)
|
||||||
|
|
||||||
|
INCLUDE "stm32_flash_f4_split.ld"
|
||||||
|
|
|
@ -33,4 +33,8 @@ MEMORY
|
||||||
REGION_ALIAS("STACKRAM", RAM)
|
REGION_ALIAS("STACKRAM", RAM)
|
||||||
REGION_ALIAS("FASTRAM", RAM)
|
REGION_ALIAS("FASTRAM", RAM)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_split.ld"
|
/* Put various bits and bobs of data into the free space after the vector table in sector 0 to save flash space. */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", FLASH)
|
||||||
|
|
||||||
|
INCLUDE "stm32_flash_f4_split.ld"
|
||||||
|
|
|
@ -34,4 +34,8 @@ REGION_ALIAS("STACKRAM", RAM)
|
||||||
REGION_ALIAS("FASTRAM", RAM)
|
REGION_ALIAS("FASTRAM", RAM)
|
||||||
REGION_ALIAS("VECTAB", RAM)
|
REGION_ALIAS("VECTAB", RAM)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_split.ld"
|
/* Put various bits and bobs of data into the free space after the vector table in sector 0 to save flash space. */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", FLASH)
|
||||||
|
|
||||||
|
INCLUDE "stm32_flash_f4_split.ld"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
**
|
**
|
||||||
** File : stm32_flash_split.ld
|
** File : stm32_flash_f4_split.ld
|
||||||
**
|
**
|
||||||
** Abstract : Common linker script for STM32 devices.
|
** Abstract : Common linker script for STM32 devices.
|
||||||
**
|
**
|
||||||
|
@ -80,35 +80,35 @@ SECTIONS
|
||||||
__exidx_start = .;
|
__exidx_start = .;
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*)
|
||||||
__exidx_end = .;
|
__exidx_end = .;
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
|
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||||
KEEP (*(.preinit_array*))
|
KEEP (*(.preinit_array*))
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
.init_array :
|
.init_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
PROVIDE_HIDDEN (__init_array_start = .);
|
||||||
KEEP (*(SORT(.init_array.*)))
|
KEEP (*(SORT(.init_array.*)))
|
||||||
KEEP (*(.init_array*))
|
KEEP (*(.init_array*))
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
PROVIDE_HIDDEN (__init_array_end = .);
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
.fini_array :
|
.fini_array :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||||
KEEP (*(.fini_array*))
|
KEEP (*(.fini_array*))
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
.pg_registry :
|
.pg_registry :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__pg_registry_start = .);
|
PROVIDE_HIDDEN (__pg_registry_start = .);
|
||||||
KEEP (*(.pg_registry))
|
KEEP (*(.pg_registry))
|
||||||
KEEP (*(SORT(.pg_registry.*)))
|
KEEP (*(SORT(.pg_registry.*)))
|
||||||
PROVIDE_HIDDEN (__pg_registry_end = .);
|
PROVIDE_HIDDEN (__pg_registry_end = .);
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
.pg_resetdata :
|
.pg_resetdata :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__pg_resetdata_start = .);
|
PROVIDE_HIDDEN (__pg_resetdata_start = .);
|
||||||
|
@ -144,7 +144,7 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = .; /* define a global symbol at data end */
|
_edata = .; /* define a global symbol at data end */
|
||||||
} >RAM AT> FLASH
|
} >RAM AT> MOVABLE_FLASH
|
||||||
|
|
||||||
/* Uninitialized data section */
|
/* Uninitialized data section */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
|
@ -21,6 +21,7 @@ MEMORY
|
||||||
{
|
{
|
||||||
ITCM_RAM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
|
ITCM_RAM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
|
||||||
|
|
||||||
|
/* Alternate access to the same flash storage as AXIM flash, but not writable by the boot loader. */
|
||||||
ITCM_FLASH (rx) : ORIGIN = 0x00200000, LENGTH = 16K
|
ITCM_FLASH (rx) : ORIGIN = 0x00200000, LENGTH = 16K
|
||||||
ITCM_FLASH_CONFIG (r) : ORIGIN = 0x00204000, LENGTH = 16K
|
ITCM_FLASH_CONFIG (r) : ORIGIN = 0x00204000, LENGTH = 16K
|
||||||
ITCM_FLASH1 (rx) : ORIGIN = 0x00208000, LENGTH = 480K
|
ITCM_FLASH1 (rx) : ORIGIN = 0x00208000, LENGTH = 480K
|
||||||
|
@ -39,14 +40,19 @@ MEMORY
|
||||||
}
|
}
|
||||||
|
|
||||||
REGION_ALIAS("FLASH", AXIM_FLASH)
|
REGION_ALIAS("FLASH", AXIM_FLASH)
|
||||||
|
REGION_ALIAS("WRITABLE_FLASH", AXIM_FLASH)
|
||||||
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS", AXIM_FLASH_CUSTOM_DEFAULTS)
|
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS", AXIM_FLASH_CUSTOM_DEFAULTS)
|
||||||
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
||||||
REGION_ALIAS("FLASH_OVERFLOW", AXIM_FLASH1)
|
|
||||||
REGION_ALIAS("FLASH1", AXIM_FLASH1)
|
REGION_ALIAS("FLASH1", AXIM_FLASH1)
|
||||||
|
REGION_ALIAS("WRITABLE_FLASH1", AXIM_FLASH1)
|
||||||
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS_EXTENDED", AXIM_FLASH_CUSTOM_DEFAULTS_EXTENDED)
|
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS_EXTENDED", AXIM_FLASH_CUSTOM_DEFAULTS_EXTENDED)
|
||||||
|
|
||||||
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("RAM", SRAM1)
|
REGION_ALIAS("RAM", SRAM1)
|
||||||
|
|
||||||
|
/* Put various bits and bobs of data into the free space after the vector table in sector 0 to save flash space. */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", AXIM_FLASH)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_f7_split.ld"
|
INCLUDE "stm32_flash_f7_split.ld"
|
||||||
|
|
|
@ -23,13 +23,14 @@ MEMORY
|
||||||
{
|
{
|
||||||
ITCM_RAM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
|
ITCM_RAM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
|
||||||
|
|
||||||
|
/* Alternate access to the same flash storage as AXIM flash, but not writable by the boot loader. */
|
||||||
ITCM_FLASH (rx) : ORIGIN = 0x00200000, LENGTH = 32K
|
ITCM_FLASH (rx) : ORIGIN = 0x00200000, LENGTH = 32K
|
||||||
ITCM_FLASH_CONFIG (r) : ORIGIN = 0x00208000, LENGTH = 32K
|
ITCM_FLASH_CONFIG (r) : ORIGIN = 0x00208000, LENGTH = 32K
|
||||||
ITCM_FLASH1 (rx) : ORIGIN = 0x00210000, LENGTH = 960K
|
ITCM_FLASH1 (rx) : ORIGIN = 0x00210000, LENGTH = 960K
|
||||||
|
|
||||||
AXIM_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 10K
|
AXIM_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 10K
|
||||||
AXIM_FLASH_CUSTOM_DEFAULTS (r) : ORIGIN = 0x08002800, LENGTH = 10K
|
AXIM_FLASH_CUSTOM_DEFAULTS (r) : ORIGIN = 0x08002800, LENGTH = 10K
|
||||||
AXIM_FLASH_OVERFLOW (r) : ORIGIN = 0x08005000, LENGTH = 12K
|
AXIM_FLASH_UNUSED (r) : ORIGIN = 0x08005000, LENGTH = 12K
|
||||||
/* config occupies the entire flash sector 1 for the ease of erasure, 32K on F74x */
|
/* config occupies the entire flash sector 1 for the ease of erasure, 32K on F74x */
|
||||||
AXIM_FLASH_CONFIG (r) : ORIGIN = 0x08008000, LENGTH = 32K
|
AXIM_FLASH_CONFIG (r) : ORIGIN = 0x08008000, LENGTH = 32K
|
||||||
AXIM_FLASH1 (rx) : ORIGIN = 0x08010000, LENGTH = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 928K : 960K
|
AXIM_FLASH1 (rx) : ORIGIN = 0x08010000, LENGTH = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 928K : 960K
|
||||||
|
@ -42,14 +43,19 @@ MEMORY
|
||||||
}
|
}
|
||||||
|
|
||||||
REGION_ALIAS("FLASH", ITCM_FLASH)
|
REGION_ALIAS("FLASH", ITCM_FLASH)
|
||||||
REGION_ALIAS("FLASH_OVERFLOW", AXIM_FLASH_OVERFLOW)
|
REGION_ALIAS("WRITABLE_FLASH", AXIM_FLASH)
|
||||||
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS", AXIM_FLASH_CUSTOM_DEFAULTS)
|
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS", AXIM_FLASH_CUSTOM_DEFAULTS)
|
||||||
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
||||||
REGION_ALIAS("FLASH1", ITCM_FLASH1)
|
REGION_ALIAS("FLASH1", ITCM_FLASH1)
|
||||||
|
REGION_ALIAS("WRITABLE_FLASH1", AXIM_FLASH1)
|
||||||
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS_EXTENDED", AXIM_FLASH_CUSTOM_DEFAULTS_EXTENDED)
|
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS_EXTENDED", AXIM_FLASH_CUSTOM_DEFAULTS_EXTENDED)
|
||||||
|
|
||||||
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("RAM", SRAM1)
|
REGION_ALIAS("RAM", SRAM1)
|
||||||
|
|
||||||
|
/* Put various bits and bobs of data into the main chunk of flash as we have enough of it */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", AXIM_FLASH1)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_f7_split.ld"
|
INCLUDE "stm32_flash_f7_split.ld"
|
||||||
|
|
|
@ -23,13 +23,14 @@ MEMORY
|
||||||
{
|
{
|
||||||
ITCM_RAM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
|
ITCM_RAM (rx) : ORIGIN = 0x00000000, LENGTH = 16K
|
||||||
|
|
||||||
|
/* Alternate access to the same flash storage as AXIM flash, but not writable by the boot loader. */
|
||||||
ITCM_FLASH (rx) : ORIGIN = 0x00200000, LENGTH = 32K
|
ITCM_FLASH (rx) : ORIGIN = 0x00200000, LENGTH = 32K
|
||||||
ITCM_FLASH_CONFIG (r) : ORIGIN = 0x00208000, LENGTH = 32K
|
ITCM_FLASH_CONFIG (r) : ORIGIN = 0x00208000, LENGTH = 32K
|
||||||
ITCM_FLASH1 (rx) : ORIGIN = 0x00210000, LENGTH = 1984K
|
ITCM_FLASH1 (rx) : ORIGIN = 0x00210000, LENGTH = 1984K
|
||||||
|
|
||||||
AXIM_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 10K
|
AXIM_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 10K
|
||||||
AXIM_FLASH_CUSTOM_DEFAULTS (r) : ORIGIN = 0x08002800, LENGTH = 10K
|
AXIM_FLASH_CUSTOM_DEFAULTS (r) : ORIGIN = 0x08002800, LENGTH = 10K
|
||||||
AXIM_FLASH_OVERFLOW (r) : ORIGIN = 0x08005000, LENGTH = 12K
|
AXIM_FLASH_UNUSED (r) : ORIGIN = 0x08005000, LENGTH = 12K
|
||||||
AXIM_FLASH_CONFIG (r) : ORIGIN = 0x08008000, LENGTH = 32K
|
AXIM_FLASH_CONFIG (r) : ORIGIN = 0x08008000, LENGTH = 32K
|
||||||
AXIM_FLASH1 (rx) : ORIGIN = 0x08010000, LENGTH = 1984K
|
AXIM_FLASH1 (rx) : ORIGIN = 0x08010000, LENGTH = 1984K
|
||||||
|
|
||||||
|
@ -39,14 +40,19 @@ MEMORY
|
||||||
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
|
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
|
||||||
}
|
}
|
||||||
|
|
||||||
REGION_ALIAS("FLASH", AXIM_FLASH)
|
REGION_ALIAS("FLASH", ITCM_FLASH)
|
||||||
REGION_ALIAS("FLASH_OVERFLOW", AXIM_FLASH_OVERFLOW)
|
REGION_ALIAS("WRITABLE_FLASH", AXIM_FLASH)
|
||||||
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS", AXIM_FLASH_CUSTOM_DEFAULTS)
|
REGION_ALIAS("FLASH_CUSTOM_DEFAULTS", AXIM_FLASH_CUSTOM_DEFAULTS)
|
||||||
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
||||||
REGION_ALIAS("FLASH1", AXIM_FLASH1)
|
REGION_ALIAS("FLASH1", ITCM_FLASH1)
|
||||||
|
REGION_ALIAS("WRITABLE_FLASH1", AXIM_FLASH1)
|
||||||
|
|
||||||
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("RAM", DTCM_RAM)
|
REGION_ALIAS("RAM", DTCM_RAM)
|
||||||
|
|
||||||
|
/* Put various bits and bobs of data into the main chunk of flash as we have enough of it */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", AXIM_FLASH1)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_f7_split.ld"
|
INCLUDE "stm32_flash_f7_split.ld"
|
||||||
|
|
|
@ -32,7 +32,7 @@ SECTIONS
|
||||||
PROVIDE (isr_vector_table_base = .);
|
PROVIDE (isr_vector_table_base = .);
|
||||||
KEEP(*(.isr_vector)) /* Startup code */
|
KEEP(*(.isr_vector)) /* Startup code */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
} >FLASH AT >AXIM_FLASH
|
} >FLASH AT >WRITABLE_FLASH
|
||||||
|
|
||||||
/* The program code and other data goes into FLASH */
|
/* The program code and other data goes into FLASH */
|
||||||
.text :
|
.text :
|
||||||
|
@ -51,7 +51,7 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_etext = .; /* define a global symbols at end of code */
|
_etext = .; /* define a global symbols at end of code */
|
||||||
} >FLASH1 AT >AXIM_FLASH1
|
} >FLASH1 AT >WRITABLE_FLASH1
|
||||||
|
|
||||||
/* Critical program code goes into ITCM RAM */
|
/* Critical program code goes into ITCM RAM */
|
||||||
/* Copy specific fast-executing code to ITCM RAM */
|
/* Copy specific fast-executing code to ITCM RAM */
|
||||||
|
@ -64,18 +64,18 @@ SECTIONS
|
||||||
*(.tcm_code*)
|
*(.tcm_code*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
tcm_code_end = .;
|
tcm_code_end = .;
|
||||||
} >ITCM_RAM AT >AXIM_FLASH1
|
} >ITCM_RAM AT >WRITABLE_FLASH1
|
||||||
|
|
||||||
.ARM.extab :
|
.ARM.extab :
|
||||||
{
|
{
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
|
|
||||||
.ARM :
|
.ARM :
|
||||||
{
|
{
|
||||||
__exidx_start = .;
|
__exidx_start = .;
|
||||||
*(.ARM.exidx*) __exidx_end = .;
|
*(.ARM.exidx*) __exidx_end = .;
|
||||||
} >FLASH AT >AXIM_FLASH
|
} >MOVABLE_FLASH
|
||||||
|
|
||||||
.pg_registry :
|
.pg_registry :
|
||||||
{
|
{
|
||||||
|
@ -83,14 +83,14 @@ SECTIONS
|
||||||
KEEP (*(.pg_registry))
|
KEEP (*(.pg_registry))
|
||||||
KEEP (*(SORT(.pg_registry.*)))
|
KEEP (*(SORT(.pg_registry.*)))
|
||||||
PROVIDE_HIDDEN (__pg_registry_end = .);
|
PROVIDE_HIDDEN (__pg_registry_end = .);
|
||||||
} >FLASH AT >AXIM_FLASH
|
} >MOVABLE_FLASH
|
||||||
|
|
||||||
.pg_resetdata :
|
.pg_resetdata :
|
||||||
{
|
{
|
||||||
PROVIDE_HIDDEN (__pg_resetdata_start = .);
|
PROVIDE_HIDDEN (__pg_resetdata_start = .);
|
||||||
KEEP (*(.pg_resetdata))
|
KEEP (*(.pg_resetdata))
|
||||||
PROVIDE_HIDDEN (__pg_resetdata_end = .);
|
PROVIDE_HIDDEN (__pg_resetdata_end = .);
|
||||||
} >FLASH_OVERFLOW
|
} >FLASH1 AT >WRITABLE_FLASH1
|
||||||
|
|
||||||
/* Storage for the address for the configuration section so we can grab it out of the hex file */
|
/* Storage for the address for the configuration section so we can grab it out of the hex file */
|
||||||
.custom_defaults :
|
.custom_defaults :
|
||||||
|
@ -120,7 +120,7 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = .; /* define a global symbol at data end */
|
_edata = .; /* define a global symbol at data end */
|
||||||
} >RAM AT >AXIM_FLASH1
|
} >RAM AT >WRITABLE_FLASH1
|
||||||
|
|
||||||
/* Uninitialized data section */
|
/* Uninitialized data section */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -166,7 +166,7 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_efastram_data = .; /* define a global symbol at data end */
|
_efastram_data = .; /* define a global symbol at data end */
|
||||||
} >FASTRAM AT >AXIM_FLASH1
|
} >FASTRAM AT >WRITABLE_FLASH1
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.fastram_bss (NOLOAD) :
|
.fastram_bss (NOLOAD) :
|
||||||
|
|
|
@ -35,4 +35,8 @@ REGION_ALIAS("STACKRAM", CCM)
|
||||||
REGION_ALIAS("FASTRAM", CCM)
|
REGION_ALIAS("FASTRAM", CCM)
|
||||||
REGION_ALIAS("VECTAB", CCM)
|
REGION_ALIAS("VECTAB", CCM)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_split_g4.ld"
|
/* Put various bits and bobs of data into the free space after the vector table in sector 0 to save flash space. */
|
||||||
|
|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", FLASH)
|
||||||
|
|
||||||
|
INCLUDE "stm32_flash_g4_split.ld"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
**
|
**
|
||||||
** File : stm32_flash_split.ld
|
** File : stm32_flash_g4_split.ld
|
||||||
**
|
**
|
||||||
** Abstract : Common linker script for STM32 devices.
|
** Abstract : Common linker script for STM32 devices.
|
||||||
**
|
**
|
||||||
|
@ -75,12 +75,15 @@ SECTIONS
|
||||||
} >FLASH1
|
} >FLASH1
|
||||||
|
|
||||||
|
|
||||||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
|
.ARM.extab : {
|
||||||
|
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||||
|
} >MOVABLE_FLASH
|
||||||
|
|
||||||
.ARM : {
|
.ARM : {
|
||||||
__exidx_start = .;
|
__exidx_start = .;
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*)
|
||||||
__exidx_end = .;
|
__exidx_end = .;
|
||||||
} >FLASH
|
} >MOVABLE_FLASH
|
||||||
|
|
||||||
.preinit_array :
|
.preinit_array :
|
||||||
{
|
{
|
|
@ -38,7 +38,9 @@ ENTRY(Reset_Handler)
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 10K
|
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 10K
|
||||||
FLASH_CUSTOM_DEFAULTS (r) : ORIGIN = 0x08002800, LENGTH = 118K
|
FLASH_CUSTOM_DEFAULTS (r) : ORIGIN = 0x08002800, LENGTH = 10K
|
||||||
|
FLASH_UNUSED (r) : ORIGIN = 0x08005000, LENGTH = 108K
|
||||||
|
|
||||||
FLASH_CONFIG (r) : ORIGIN = 0x08020000, LENGTH = 128K
|
FLASH_CONFIG (r) : ORIGIN = 0x08020000, LENGTH = 128K
|
||||||
FLASH1 (rx) : ORIGIN = 0x08040000, LENGTH = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 1664K : 1792K
|
FLASH1 (rx) : ORIGIN = 0x08040000, LENGTH = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 1664K : 1792K
|
||||||
FLASH_CUSTOM_DEFAULTS_EXTENDED (r): ORIGIN = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 0x081E0000 : 0x08200000, LENGTH = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 128K : 0K
|
FLASH_CUSTOM_DEFAULTS_EXTENDED (r): ORIGIN = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 0x081E0000 : 0x08200000, LENGTH = DEFINED(USE_CUSTOM_DEFAULTS_EXTENDED) ? 128K : 0K
|
||||||
|
@ -55,17 +57,6 @@ MEMORY
|
||||||
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||||
|
|
||||||
/* INCLUDE "stm32_flash_f7_split.ld" */
|
|
||||||
/*
|
|
||||||
*****************************************************************************
|
|
||||||
**
|
|
||||||
** File : stm32_flash_f7_split.ld
|
|
||||||
**
|
|
||||||
** Abstract : Common linker script for STM32 devices.
|
|
||||||
**
|
|
||||||
*****************************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Entry Point */
|
/* Entry Point */
|
||||||
ENTRY(Reset_Handler)
|
ENTRY(Reset_Handler)
|
||||||
|
|
||||||
|
@ -127,13 +118,13 @@ SECTIONS
|
||||||
.ARM.extab :
|
.ARM.extab :
|
||||||
{
|
{
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||||
} >FLASH
|
} >FLASH1
|
||||||
|
|
||||||
.ARM :
|
.ARM :
|
||||||
{
|
{
|
||||||
__exidx_start = .;
|
__exidx_start = .;
|
||||||
*(.ARM.exidx*) __exidx_end = .;
|
*(.ARM.exidx*) __exidx_end = .;
|
||||||
} >FLASH
|
} >FLASH1
|
||||||
|
|
||||||
.pg_registry :
|
.pg_registry :
|
||||||
{
|
{
|
||||||
|
@ -178,7 +169,7 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_edata = .; /* define a global symbol at data end */
|
_edata = .; /* define a global symbol at data end */
|
||||||
} >RAM AT >FLASH
|
} >RAM AT >FLASH1
|
||||||
|
|
||||||
/* Uninitialized data section */
|
/* Uninitialized data section */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -224,7 +215,7 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_efastram_data = .; /* define a global symbol at data end */
|
_efastram_data = .; /* define a global symbol at data end */
|
||||||
} >FASTRAM AT >FLASH
|
} >FASTRAM AT >FLASH1
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.fastram_bss (NOLOAD) :
|
.fastram_bss (NOLOAD) :
|
||||||
|
@ -253,7 +244,7 @@ SECTIONS
|
||||||
*(.dmaram_data*) /* .data* sections */
|
*(.dmaram_data*) /* .data* sections */
|
||||||
. = ALIGN(32);
|
. = ALIGN(32);
|
||||||
_edmaram_data = .; /* define a global symbol at data end */
|
_edmaram_data = .; /* define a global symbol at data end */
|
||||||
} >RAM AT >FLASH
|
} >RAM AT >FLASH1
|
||||||
|
|
||||||
. = ALIGN(32);
|
. = ALIGN(32);
|
||||||
.dmaram_bss (NOLOAD) :
|
.dmaram_bss (NOLOAD) :
|
||||||
|
|
|
@ -41,4 +41,4 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
.ARM.attributes 0 : { *(.ARM.attributes) }
|
.ARM.attributes 0 : { *(.ARM.attributes) }
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,4 +26,4 @@ SECTIONS
|
||||||
. = ORIGIN(EXST_HASH) + LENGTH(EXST_HASH);
|
. = ORIGIN(EXST_HASH) + LENGTH(EXST_HASH);
|
||||||
__firmware_end__ = .;
|
__firmware_end__ = .;
|
||||||
} >EXST_HASH
|
} >EXST_HASH
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,15 +37,18 @@ MEMORY
|
||||||
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
|
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
|
||||||
}
|
}
|
||||||
|
|
||||||
REGION_ALIAS("ITCM_FLASH1", ITCM_FLASH)
|
|
||||||
REGION_ALIAS("AXIM_FLASH1", AXIM_FLASH)
|
|
||||||
|
|
||||||
REGION_ALIAS("FLASH", AXIM_FLASH)
|
REGION_ALIAS("FLASH", AXIM_FLASH)
|
||||||
|
REGION_ALIAS("WRITABLE_FLASH", AXIM_FLASH)
|
||||||
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
REGION_ALIAS("FLASH_CONFIG", AXIM_FLASH_CONFIG)
|
||||||
REGION_ALIAS("FLASH1", AXIM_FLASH1)
|
REGION_ALIAS("FLASH1", AXIM_FLASH)
|
||||||
|
REGION_ALIAS("WRITABLE_FLASH1", AXIM_FLASH)
|
||||||
|
|
||||||
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
REGION_ALIAS("STACKRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||||
REGION_ALIAS("RAM", SRAM1)
|
REGION_ALIAS("RAM", SRAM1)
|
||||||
|
|
||||||
|
/* Put various bits and bobs of data into the free space after the vector table in sector 0 to save flash space. */
|
||||||
|

|
||||||
|
REGION_ALIAS("MOVABLE_FLASH", AXIM_FLASH)
|
||||||
|
|
||||||
INCLUDE "stm32_flash_f7_split.ld"
|
INCLUDE "stm32_flash_f7_split.ld"
|
|
@ -1,5 +1,5 @@
|
||||||
F7X2RE_TARGETS += $(TARGET)
|
F7X2RE_TARGETS += $(TARGET)
|
||||||
LD_SCRIPT = $(ROOT)/src/main/target/$(TARGET)/stm32_flash_f722_no_split.ld
|
LD_SCRIPT = $(ROOT)/src/main/target/$(TARGET)/stm32_flash_f722_kissfcv2f7.ld
|
||||||
CFLAGS += -DCLOCK_SOURCE_USE_HSI
|
CFLAGS += -DCLOCK_SOURCE_USE_HSI
|
||||||
|
|
||||||
TARGET_SRC = \
|
TARGET_SRC = \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue