diff --git a/src/link/stm32_flash_h750_1m.ld b/src/link/stm32_flash_h750_1m.ld new file mode 100644 index 0000000000..c187f21efe --- /dev/null +++ b/src/link/stm32_flash_h750_1m.ld @@ -0,0 +1,94 @@ +/* +***************************************************************************** +** +** File : stm32_flash_h750_1m.ld +** +** Abstract : Linker script for STM32H750xB Device with +** 512K AXI-RAM mapped onto AXI bus on D1 domain +** 128K SRAM1 mapped on D2 domain +** 128K SRAM2 mapped on D2 domain +** 32K SRAM3 mapped on D2 domain +** 64K SRAM4 mapped on D3 domain +** 64K ITCM +** 128K DTCM +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* +0x00000000 to 0x0000FFFF 64K ITCM +0x20000000 to 0x2001FFFF 128K DTCM +0x24000000 to 0x2407FFFF 512K AXI SRAM, D1 domain, main RAM +0x30000000 to 0x3001FFFF 128K SRAM1, D2 domain +0x30020000 to 0x3003FFFF 128K SRAM2, D2 domain +0x30040000 to 0x30047FFF 32K SRAM3, D2 domain, unused +0x38000000 to 0x3800FFFF 64K SRAM4, D3 domain, unused +0x38800000 to 0x38800FFF 4K BACKUP SRAM, Backup domain, unused + +0x08000000 to 0x0801FFFF 128K isr vector, startup code, firmware, no config! // FLASH_Sector_0 +*/ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K + + ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K + DTCM_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K + RAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K + + D2_RAM (rwx) : ORIGIN = 0x30000000, LENGTH = 256K /* SRAM1 + SRAM2 */ + + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K + QUADSPI (rx) : ORIGIN = 0x90000000, LENGTH = 0K +} + +REGION_ALIAS("STACKRAM", DTCM_RAM) +REGION_ALIAS("FASTRAM", DTCM_RAM) +REGION_ALIAS("MAIN", FLASH) + +INCLUDE "stm32_h750_common.ld" + +SECTIONS +{ + .DMA_RAM (NOLOAD) : + { + . = ALIGN(32); + PROVIDE(dmaram_start = .); + _sdmaram = .; + _dmaram_start__ = _sdmaram; + KEEP(*(.DMA_RAM)) + PROVIDE(dmaram_end = .); + _edmaram = .; + _dmaram_end__ = _edmaram; + } >D2_RAM + + .DMA_RW_D2 (NOLOAD) : + { + . = ALIGN(32); + PROVIDE(dmarw_start = .); + _sdmarw = .; + _dmarw_start__ = _sdmarw; + KEEP(*(.DMA_RW)) + PROVIDE(dmarw_end = .); + _edmarw = .; + _dmarw_end__ = _edmarw; + } >D2_RAM + + .DMA_RW_AXI (NOLOAD) : + { + . = ALIGN(32); + PROVIDE(dmarwaxi_start = .); + _sdmarwaxi = .; + _dmarwaxi_start__ = _sdmarwaxi; + KEEP(*(.DMA_RW_AXI)) + PROVIDE(dmarwaxi_end = .); + _edmarwaxi = .; + _dmarwaxi_end__ = _edmarwaxi; + } >RAM +} + +INCLUDE "stm32_h750_common_post.ld" diff --git a/src/main/target/SPRACINGH7ZERO/target.mk b/src/main/target/SPRACINGH7ZERO/target.mk index 2c60241eaf..36c2b8a018 100644 --- a/src/main/target/SPRACINGH7ZERO/target.mk +++ b/src/main/target/SPRACINGH7ZERO/target.mk @@ -2,8 +2,15 @@ H750xB_TARGETS += $(TARGET) HSE_VALUE = 8000000 +ifneq ($(EXST),) EXST = yes EXST_ADJUST_VMA = 0x97CE0000 +endif + +ifneq ($(EXST),yes) +TARGET_FLASH_SIZE := 1024 +LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h750_1m.ld +endif FEATURES += VCP ONBOARDFLASH SDCARD_SDIO