From 1c60776487f13bb0bfc188991f96844aee53a6ce Mon Sep 17 00:00:00 2001 From: mikeller Date: Thu, 27 Jun 2019 01:51:10 +1200 Subject: [PATCH] Added target variant NUCLEOH743_RAMCONFIG to get CI coverage of 'EXST' changes. Changing over to be RAM based. Changes required for MPU configuration service. Added documentation. --- Makefile | 3 + docs/boards/Board - NucleoH743 RAM based.md | 35 +++ .../NUCLEOH743_RAMBASED_boot_address.png | Bin 0 -> 27135 bytes .../NUCLEOH743_RAMBASED_option_bytes.png | Bin 0 -> 46068 bytes .../images/NUCLEOH743_RAMBASED_program.png | Bin 0 -> 46027 bytes .../boards/images/NUCLEOH743_RAMBASED_run.png | Bin 0 -> 25947 bytes make/mcu/STM32H7.mk | 9 + make/source.mk | 4 + src/link/stm32_flash_h743_ram_based.ld | 296 ++++++++++++++++++ .../target/NUCLEOH743/NUCLEOH743_RAMBASED.mk | 0 src/main/target/NUCLEOH743/target.mk | 6 +- unified_targets/configs/OMNIBUSF4_test.config | 22 ++ 12 files changed, 374 insertions(+), 1 deletion(-) create mode 100644 docs/boards/Board - NucleoH743 RAM based.md create mode 100644 docs/boards/images/NUCLEOH743_RAMBASED_boot_address.png create mode 100644 docs/boards/images/NUCLEOH743_RAMBASED_option_bytes.png create mode 100644 docs/boards/images/NUCLEOH743_RAMBASED_program.png create mode 100644 docs/boards/images/NUCLEOH743_RAMBASED_run.png create mode 100644 src/link/stm32_flash_h743_ram_based.ld create mode 100644 src/main/target/NUCLEOH743/NUCLEOH743_RAMBASED.mk create mode 100644 unified_targets/configs/OMNIBUSF4_test.config diff --git a/Makefile b/Makefile index 8b0cab8345..daf4aaf65e 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,9 @@ OPBL ?= no # compile for External Storage Bootloader support EXST ?= no +# compile for target loaded into RAM +RAM_BASED ?= no + # Debugger optons: # empty - ordinary build with all optimizations enabled # RELWITHDEBINFO - ordinary build with debug symbols and all optimizations enabled diff --git a/docs/boards/Board - NucleoH743 RAM based.md b/docs/boards/Board - NucleoH743 RAM based.md new file mode 100644 index 0000000000..7a1056c4d2 --- /dev/null +++ b/docs/boards/Board - NucleoH743 RAM based.md @@ -0,0 +1,35 @@ +# Board - Nucleo H743 - RAM based image + +This target for the Nucleo H743 is loaded entirely into the MCU RAM, thus facilitating quick turnaround development testing, without subjecting the flash storage to wear. + +In order to flash / run it, the ST-Link tool available from ST Microelectronics has to be used. + +## Board preparation + +For the MCU to run the firmware from RAM after a reset, the boot address has to be changed: + +- open the 'Option Bytes' dialog: + +!['Option Bytes' menu entry](images/NUCLEOH743_RAMBASED_option_bytes.png) + +- set the high word of BOOT\_ADD0 to `0x2401`: + +![set boot address](images/NUCLEOH743_RAMBASED_boot_address.png) + +- click 'Apply'. + +## Installation + +Since the firmware image is only stored in RAM, this has to be done after every power cycle of the board. + +- open the 'Program' dialog: + +!['Program' menu entry](images/NUCLEOH743_RAMBASED_program.png) + +- click 'Browse', select the 'NUCLEOH743\_RAMBASED' hex image; +- make sure 'Reset after programming' is checked; +- click 'Start' to start programming: + +![load / run the program](images/NUCLEOH743_RAMBASED_run.png) + +- After programming has completed the firmware will be run. diff --git a/docs/boards/images/NUCLEOH743_RAMBASED_boot_address.png b/docs/boards/images/NUCLEOH743_RAMBASED_boot_address.png new file mode 100644 index 0000000000000000000000000000000000000000..21d44f6cee1a5f9e609b8ad086b1dfffe7d64002 GIT binary patch literal 27135 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 ZpLFxw42b{OjXMGS>0L9@#%bDy{0FJ_io*Z^ literal 0 HcmV?d00001 diff --git a/docs/boards/images/NUCLEOH743_RAMBASED_option_bytes.png b/docs/boards/images/NUCLEOH743_RAMBASED_option_bytes.png new file mode 100644 index 0000000000000000000000000000000000000000..a30eda615959edaa55f4cbec39e672ce261624ed GIT binary patch literal 46068 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 XrMlR}HFa8}@$y7(r4m literal 0 HcmV?d00001 diff --git a/docs/boards/images/NUCLEOH743_RAMBASED_program.png b/docs/boards/images/NUCLEOH743_RAMBASED_program.png new file mode 100644 index 0000000000000000000000000000000000000000..29e62def0268d9b895947a0c8e9431be3b818919 GIT binary patch literal 46027 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 U`KFUUoB%%RD%#5LZ&^J3AIe?+bN~PV literal 0 HcmV?d00001 diff --git a/docs/boards/images/NUCLEOH743_RAMBASED_run.png b/docs/boards/images/NUCLEOH743_RAMBASED_run.png new file mode 100644 index 0000000000000000000000000000000000000000..97de9f67fe4ebcb2e0daf2c6be0ccd9a0ce5f16e GIT binary patch literal 25947 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 literal 0 HcmV?d00001 diff --git a/make/mcu/STM32H7.mk b/make/mcu/STM32H7.mk index 8d165ba75c..a3ccf14aa0 100644 --- a/make/mcu/STM32H7.mk +++ b/make/mcu/STM32H7.mk @@ -164,6 +164,15 @@ DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h743_2m.ld STARTUP_SRC = startup_stm32h743xx.s TARGET_FLASH := 2048 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 + +ifeq ($(RAM_BASED),yes) +FIRMWARE_SIZE := 448 +# TARGET_FLASH now becomes the amount of RAM memory that is occupied by the firmware +# and the maximum size of the data stored on the external storage device. +TARGET_FLASH := FIRMWARE_SIZE +DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h743_ram_based.ld +endif + else ifeq ($(TARGET),$(filter $(TARGET),$(H750xB_TARGETS))) DEVICE_FLAGS += -DSTM32H750xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h750_128k.ld diff --git a/make/source.mk b/make/source.mk index d98ed91594..855a436b87 100644 --- a/make/source.mk +++ b/make/source.mk @@ -190,6 +190,10 @@ ifeq ($(EXST),yes) TARGET_FLAGS := -DUSE_EXST $(TARGET_FLAGS) endif +ifeq ($(RAM_BASED),yes) +TARGET_FLAGS := -DUSE_EXST -DEEPROM_IN_RAM $(TARGET_FLAGS) +endif + ifeq ($(SIMULATOR_BUILD),yes) TARGET_FLAGS := -DSIMULATOR_BUILD $(TARGET_FLAGS) endif diff --git a/src/link/stm32_flash_h743_ram_based.ld b/src/link/stm32_flash_h743_ram_based.ld new file mode 100644 index 0000000000..442917675f --- /dev/null +++ b/src/link/stm32_flash_h743_ram_based.ld @@ -0,0 +1,296 @@ +/* +***************************************************************************** +** +** File : stm32_flash_h7x3_2m.ld +** +** Abstract : Linker script for STM32H743xI 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, unused +0x30020000 to 0x3003FFFF 128K SRAM2, D2 domain, unused +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 0x081FFFFF 2048K full flash, +0x08000000 to 0x0801FFFF 128K isr vector, startup code, +0x08020000 to 0x0803FFFF 128K config, // FLASH_Sector_1 +0x08040000 to 0x081FFFFF 1792K firmware, +*/ + +/* Specify the memory areas */ +MEMORY +{ + ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K + DTCM_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K + RAM (rwx) : ORIGIN = 0x24000000, LENGTH = 64K + CODE_RAM (rwx) : ORIGIN = 0x24010000, LENGTH = 448K + + D2_RAM (rwx) : ORIGIN = 0x30000000, LENGTH = 256K /* SRAM1 + SRAM2 */ + + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +REGION_ALIAS("STACKRAM", 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(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(STACKRAM) + LENGTH(STACKRAM) - 8; /* Reserve 2 x 4bytes for info across reset */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x800; /* required amount of stack */ + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(512); + PROVIDE (isr_vector_table_base = .); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >CODE_RAM + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >CODE_RAM + + /* Critical program code goes into ITCM RAM */ + /* Copy specific fast-executing code to ITCM RAM */ + tcm_code = LOADADDR(.tcm_code); + .tcm_code : + { + . = ALIGN(4); + tcm_code_start = .; + *(.tcm_code) + *(.tcm_code*) + . = ALIGN(4); + tcm_code_end = .; + } >ITCM_RAM + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } >CODE_RAM + + .ARM : + { + __exidx_start = .; + *(.ARM.exidx*) __exidx_end = .; + } >CODE_RAM + + .pg_registry : + { + PROVIDE_HIDDEN (__pg_registry_start = .); + KEEP (*(.pg_registry)) + KEEP (*(SORT(.pg_registry.*))) + PROVIDE_HIDDEN (__pg_registry_end = .); + } >CODE_RAM + + .pg_resetdata : + { + PROVIDE_HIDDEN (__pg_resetdata_start = .); + KEEP (*(.pg_resetdata)) + PROVIDE_HIDDEN (__pg_resetdata_end = .); + } >CODE_RAM + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss (NOLOAD) : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(SORT_BY_ALIGNMENT(.bss*)) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .sram2 (NOLOAD) : + { + /* This is used by the startup in order to initialize the .sram2 secion */ + _ssram2 = .; /* define a global symbol at sram2 start */ + __sram2_start__ = _ssram2; + *(.sram2) + *(SORT_BY_ALIGNMENT(.sram2*)) + + . = ALIGN(4); + _esram2 = .; /* define a global symbol at sram2 end */ + __sram2_end__ = _esram2; + } >RAM + + /* used during startup to initialized fastram_data */ + _sfastram_idata = LOADADDR(.fastram_data); + + /* Initialized FAST_RAM section for unsuspecting developers */ + .fastram_data : + { + . = ALIGN(4); + _sfastram_data = .; /* create a global symbol at data start */ + *(.fastram_data) /* .data sections */ + *(.fastram_data*) /* .data* sections */ + + . = ALIGN(4); + _efastram_data = .; /* define a global symbol at data end */ + } >FASTRAM + + . = ALIGN(4); + .fastram_bss (NOLOAD) : + { + _sfastram_bss = .; + __fastram_bss_start__ = _sfastram_bss; + *(.fastram_bss) + *(SORT_BY_ALIGNMENT(.fastram_bss*)) + + . = ALIGN(4); + _efastram_bss = .; + __fastram_bss_end__ = _efastram_bss; + } >FASTRAM + + .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 + + .persistent_data (NOLOAD) : + { + __persistent_data_start__ = .; + *(.persistent_data) + . = ALIGN(4); + __persistent_data_end__ = .; + } >RAM + + + /* User_heap_stack section, used to check that there is enough RAM left */ + _heap_stack_end = ORIGIN(STACKRAM)+LENGTH(STACKRAM) - 8; /* 8 bytes to allow for alignment */ + _heap_stack_begin = _heap_stack_end - _Min_Stack_Size - _Min_Heap_Size; + . = _heap_stack_begin; + ._user_heap_stack : + { + . = ALIGN(4); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >STACKRAM = 0xa5 + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/src/main/target/NUCLEOH743/NUCLEOH743_RAMBASED.mk b/src/main/target/NUCLEOH743/NUCLEOH743_RAMBASED.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/main/target/NUCLEOH743/target.mk b/src/main/target/NUCLEOH743/target.mk index 7c65aee48f..dd255509b6 100644 --- a/src/main/target/NUCLEOH743/target.mk +++ b/src/main/target/NUCLEOH743/target.mk @@ -1,7 +1,11 @@ H743xI_TARGETS += $(TARGET) -#FEATURES += SDCARD VCP + FEATURES += VCP ONBOARDFLASH +ifeq ($(TARGET), NUCLEOH743_RAMBASED) +RAM_BASED = yes +endif + # Top level Makefile adds, if not defined, HSE_VALUE, as default for F4 targets. # We don't want to assume any particular value until de facto design is established, # so we set the value here. diff --git a/unified_targets/configs/OMNIBUSF4_test.config b/unified_targets/configs/OMNIBUSF4_test.config new file mode 100644 index 0000000000..e44a0a329d --- /dev/null +++ b/unified_targets/configs/OMNIBUSF4_test.config @@ -0,0 +1,22 @@ +# Betaflight / STM32F405 (S405) 4.1.0 May 22 2019 / 02:24:46 (1541466da) MSP API: 1.42 + +board_name OMNIBUSF4 +manufacturer_id AIRB + +# resources +resource LED_STRIP 1 A01 +resource LED 1 B05 + +# timer +timer A01 AF2 +# pin A01: TIM5 CH2 (AF2) + +# dma +dma ADC 2 1 +# ADC 2: DMA2 Stream 3 Channel 1 +dma pin A01 0 +# pin A01: DMA1 Stream 4 Channel 6 + +# master +set gyro_1_bustype = SPI +set gyro_1_spibus = 1