jw-pkg/make/mcu-defs.mk
Jan Lindemann df6c1ef9a1 make, tmpl/tagged: Add basic microcontroller support
Add support for building the firmware of the Cortex M3 ST-NUCLEO-F103RB
development board with an STM32 microcontroller. This commit add some hooks,
notably support for tagged templates, but adds lots of crap, too, notably
makefiles and variables that should have different names and / or
functionality.

New makefiles are: Mcu-defs.mk  mcu-exe.mk  mcu-flash.mk  mcu-tags.mk
mcu-topdir.mk tagged-tmpl.mk, a new directory is tmpl/tagged.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-06 12:19:42 +00:00

56 lines
2 KiB
Makefile

#PROJECT ?= $(shell cd $(TOPDIR); /bin/pwd | xargs notdir)
#define mcu_check_var
# ifeq ($($(1)),)
# $(error $(1) not specified)
# endif
#endef
include $(MODDIR)/make/mcu-tags.mk
ifeq ($(MCU_BOARD_MODEL),)
error MCU_BOARD_MODEL not specified
endif
ifeq ($(MCU_FLASH_OFFSET),)
error MCU_FLASH_OFFSET not specified
endif
ifeq ($(MCU_FLASH_SIZE),)
error MCU_FLASH_SIZE not specified
endif
MCU_PRODUCT_TMPL_DIR ?= $(MODDIR)/tmpl/products
MCU_BOARD_MODEL_LC ?= $(shell echo $(MCU_BOARD_MODEL) | tr '[A-Z]' '[a-z]')
MCU_BOARD ?= $(MCU_BOARD_MODEL)
MCU_BOARD_LC ?= $(shell echo $(MCU_BOARD) | tr '[A-Z]' '[a-z]')
MCU_OPENOCD_CFG_FILE ?= $(TOPDIR)/make/openocd-$(MCU_BOARD_LC).cfg
MCU_OPENOCD_OPTS ?= -f $(MCU_OPENOCD_CFG_FILE) -c "echo \"Started by jw-build\"" -c "gdb_port 3333" -c "telnet_port 4444" -c "tcl_port 6666"
MCU_OPENOCD_BIN ?= openocd
MCU_OPENOCD ?= $(MCU_OPENOCD_BIN) $(MCU_OPENOCD_OPTS)
MCU_FLASH_FETCH_BANK ?= $(MCU_FLASH_BANK)
MCU_FLASH_FETCH_FILE_BIN ?= $(MCU_FLASH_FILE_BIN)
MCU_FLASH_FETCH_FILE_HEX ?= $(MCU_FLASH_FILE_HEX)
MCU_FLASH_FETCH_OFFSET ?= $(MCU_FLASH_OFFSET)
MCU_FLASH_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
MCU_FLASH_PUSH_BANK ?= $(MCU_FLASH_BANK)
MCU_FLASH_PUSH_FILE_BIN ?= $(MCU_FLASH_FILE_BIN)
MCU_FLASH_PUSH_FILE_HEX ?= $(MCU_FLASH_FILE_HEX)
MCU_FLASH_PUSH_OFFSET ?= $(MCU_FLASH_OFFSET)
MCU_FLASH_PUSH_SIZE ?= $(MCU_FLASH_SIZE)
TOOLCHAIN_PREFIX ?= arm-none-eabi-
MCU_OBJCOPY ?= $(TOOLCHAIN_PREFIX)objcopy
MCU_FLASH_BANK ?= 0
MCU_FLASH_FILE_BIN ?= $(TOPDIR)/bin/$(MCU_BOARD_LC).bin
MCU_FLASH_FILE_HEX ?= $(TOPDIR)/bin/$(MCU_BOARD_LC).hex
#MCU_FLASH_OFFSET ?= 0x0000000
#MCU_FLASH_SIZE ?= 0x5000
ifneq ($(MCU_FLASH_FETCH_OFFSET),)
MCU_OBJCOPY_FETCH_OPTS += --change-addresses $(MCU_FLASH_FETCH_OFFSET)
endif