mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Merge pull request #11682 from fjmolinas/pr_stm32f4_riotboot
cpu/stm32f4: add riotboot requirements
This commit is contained in:
commit
f802bbb5ae
@ -10,6 +10,7 @@ FEATURES_PROVIDED += periph_qdec
|
||||
|
||||
# Various other features (if any)
|
||||
FEATURES_PROVIDED += motor_driver
|
||||
FEATURES_PROVIDED += riotboot
|
||||
|
||||
# load the common Makefile.features for Nucleo boards
|
||||
include $(RIOTBOARD)/common/nucleo64/Makefile.features
|
||||
|
@ -4,4 +4,7 @@ FEATURES_PROVIDED += periph_spi
|
||||
FEATURES_PROVIDED += periph_timer
|
||||
FEATURES_PROVIDED += periph_uart
|
||||
|
||||
# Put other features for this board (in alphabetical order)
|
||||
FEATURES_PROVIDED += riotboot
|
||||
|
||||
include $(RIOTCPU)/stm32f4/Makefile.features
|
||||
|
@ -1,5 +1,22 @@
|
||||
export CPU_ARCH = cortex-m4f
|
||||
export CPU_FAM = stm32f4
|
||||
|
||||
# STM32F4 uses sectors instead of pages, where the minimum sector length is 16KB
|
||||
# (the first sector), therefore RIOTBOOT_LEN must be 16KB to cover a whole sector.
|
||||
RIOTBOOT_LEN ?= 0x4000
|
||||
|
||||
# CPU_IRQ_NUMOF for STM32F4 boards is < 102+16 so (118*4 bytes = 472 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. 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
|
||||
|
Loading…
Reference in New Issue
Block a user