make: Improve flash-fetch targets

- Add support MCU_FLASH_BANK_NAME to support multiple banks
- Prefix binaries with TARGET_PRODUCT, if defined
- Fix flash data for stm32f769i-disco

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2019-03-29 13:32:16 +00:00
commit 9c773838c7
7 changed files with 145 additions and 26 deletions

View file

@ -22,24 +22,69 @@ endif
# -- build TAGGED_TMPL_TAGS cascade
TAGGED_TMPL_MAKEFILES = $(wildcard $(addsuffix .mk,$(foreach t,$(TAGGED_TMPL_DIRS),$(addprefix $(t)/,$(TAGGED_TMPL_TAGS)))))
ifneq ($(findstring st-nucleo-f103rb,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m3
MCU_BOARD_MODEL ?= ST-NUCLEO-F103RB
BUILD_CPPFLAGS += -DST_NUCLEO_F103RB
MCU_FLASH_OFFSET ?= 0x0000000
MCU_FLASH_SIZE ?= 0x5000
MCU_MEM_FETCH_OFFSET ?= 0x08000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
#MCU_OPENOCD_CFG_NAME ?= openocd-$(MCU_BOARD_LC).cfg
MODM_BSPS += modm:nucleo-f103rb
endif
MCU_FLASH_BANK_NAME ?= internal
ifneq ($(MCU_FLASH_BANK_NAME),internal)
$(error Unsupported flash bank name "$(MCU_FLASH_BANK_NAME)")
endif
else ifneq ($(findstring st-disco-f769i,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m7
MCU_BOARD_MODEL ?= ST-DISCO-F769I
BUILD_CPPFLAGS += -DST_DISCO_F769I
MCU_OPENOCD_CFG_NAME ?= openocd-stmqspi-st-stm32f769i-disco.cfg
MCU_FLASH_BANK_NAME ?= external
ifeq ($(MCU_FLASH_BANK_NAME),external)
MCU_FLASH_OFFSET ?= 0x00000000
MCU_FLASH_SIZE ?= 0x04000000
MCU_MEM_FETCH_OFFSET ?= 0x90000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
else ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_OFFSET ?= 0x00000000
MCU_FLASH_SIZE ?= 0x00200000
MCU_MEM_FETCH_OFFSET ?= 0x08000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
else
$(error Unsupported flash bank name "$(MCU_FLASH_BANK_NAME)")
endif
ifeq ($(MCU_OPENOCD_CFG_NAME),openocd-stmqspi-st-stm32f769i-disco.cfg)
ifeq ($(MCU_FLASH_BANK_NAME),external)
MCU_FLASH_BANK ?= 1
else ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_BANK ?= 0
endif
else ifeq ($(MCU_OPENOCD_CFG_NAME),openocd-st-stm32f7discovery.cfg)
ifeq ($(MCU_FLASH_BANK_NAME),external)
MCU_FLASH_BANK ?= 2
endif
endif
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m
# modm:disco-f769ni (SIC), not disco-f769i. mbed does the same, despite the
# fact that a board of this name doesn't exist.
MODM_BSPS += modm:disco-f769ni
endif
ifneq ($(findstring cortex-m,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex
TAGGED_TMPL_TAGS += cortex-m
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
TARGET_CPU = cortex-m3
else ifneq ($(findstring cortex-m7,$(TAGGED_TMPL_TAGS)),)
TARGET_CPU = cortex-m7
endif
endif
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
TARGET_CPU = cortex-m3
ifneq ($(findstring cortex,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex
endif
# ----- tool chain
@ -206,10 +251,15 @@ endif
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
ifneq ($(findstring $(TARGET_CPU),cortex-m3),)
ifeq ($(TARGET_CPU),cortex-m3)
PROJECT_CPPFLAGS += -mcpu=cortex-m3 -mthumb
PROJECT_LDFLAGS += -mcpu=cortex-m3 -mthumb
else ifeq ($(TARGET_CPU),cortex-m7)
PROJECT_CPPFLAGS += -mcpu=cortex-m7 -mthumb
PROJECT_LDFLAGS += -mcpu=cortex-m7 -mthumb
endif
ifneq ($(findstring cortex-m,$(TARGET_CPU)),)
# don't wrap error message lines
#PROJECT_LDFLAGS += -fmessage-length=0