1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #11899 from fjmolinas/pr_stm32f7_riotboot_requirements

cpu/stm32f7: add riotboot requirements
This commit is contained in:
Alexandre Abadie 2019-08-09 15:36:50 +02:00 committed by GitHub
commit 9cf8da0287
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 0 deletions

View File

@ -5,6 +5,9 @@ FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Put other features for this board (in alphabetical order)
FEATURES_PROVIDED += riotboot
# load the common Makefile.features for Nucleo144 boards
include $(RIOTBOARD)/common/nucleo144/Makefile.features

View File

@ -5,6 +5,9 @@ FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Put other features for this board (in alphabetical order)
FEATURES_PROVIDED += riotboot
# load the common Makefile.features for Nucleo boards
include $(RIOTBOARD)/common/nucleo144/Makefile.features

View File

@ -8,6 +8,9 @@ FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
FEATURES_PROVIDED += periph_eth
# Put other features for this board (in alphabetical order)
FEATURES_PROVIDED += riotboot
# load the common Makefile.features for Nucleo boards
include $(RIOTBOARD)/common/nucleo144/Makefile.features

View File

@ -1,5 +1,28 @@
export CPU_ARCH = cortex-m7
export CPU_FAM = stm32f7
# STM32F7 uses sectors instead of pages, where the minimum sector length is 16KB or
# 32kB (the first sector), depending on the CPU_MODEL. Therefore RIOTBOOT_LEN must
# be 16KB or 32kB to cover a whole sector.
ifneq (,$(filter stm32f722ze ,$(CPU_MODEL)))
RIOTBOOT_LEN ?= 0x4000
else
RIOTBOOT_LEN ?= 0x8000
endif
# CPU_IRQ_NUMOF for STM32F7 boards is < 110+16 so (126*4 bytes = 504 bytes ~= 0x200)
# RIOTBOOT_HDR_LEN can be set to 0x200.
# Details on alignment requirements for M4 in `cpu/cortexm_common/Makefile.include`.
RIOTBOOT_HDR_LEN ?= 0x200
# Sectors don't have the same length. Per bank there can be up to 12 sectors. If
# the smallest sector size is 16kb the first 4 sectors are 16kB long, the 5th is
# 64kB and the remaining 7 are 128kB. Since flash can only be erased by sector,
# slots can't overlap over sectors.
# RIOTBOOT_LEN is removed twice, once at the start of the flash for the bootloader,
# and a second time at the end of the flash, to get evenly sized and distributed slots.
SLOT0_LEN ?= $(shell printf "0x%x" $$((($(ROM_LEN:%K=%*1024)-2*$(RIOTBOOT_LEN)) / $(NUM_SLOTS))))
SLOT1_LEN ?= $(SLOT0_LEN)
include $(RIOTCPU)/stm32_common/Makefile.include
include $(RIOTMAKE)/arch/cortexm.inc.mk

View File

@ -43,6 +43,7 @@ extern "C" {
#elif defined(CPU_LINE_STM32F722xx)
#define CPU_IRQ_NUMOF (104U)
#endif
#define CPU_FLASH_BASE FLASH_BASE
/** @} */
#ifdef __cplusplus