Allow spcification of flash size on command line.
This commit is contained in:
parent
5d5e74ee70
commit
ef50a0648f
36
Makefile
36
Makefile
|
@ -29,6 +29,9 @@ DEBUG ?=
|
||||||
# Serial port/Device for flashing
|
# Serial port/Device for flashing
|
||||||
SERIAL_DEVICE ?= /dev/ttyUSB0
|
SERIAL_DEVICE ?= /dev/ttyUSB0
|
||||||
|
|
||||||
|
# Flash size (KB). Some low-end chips actually have more flash than advertised, use this to override.
|
||||||
|
FLASH_SIZE ?=
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Things that need to be maintained as the source changes
|
# Things that need to be maintained as the source changes
|
||||||
#
|
#
|
||||||
|
@ -40,6 +43,19 @@ VALID_TARGETS = NAZE NAZE32PRO OLIMEXINO STM32F3DISCOVERY CHEBUZZF3 CC3D CJMCU
|
||||||
# Valid targets for OP BootLoader support
|
# Valid targets for OP BootLoader support
|
||||||
OPBL_VALID_TARGETS = CC3D
|
OPBL_VALID_TARGETS = CC3D
|
||||||
|
|
||||||
|
# Configure default flash sizes for the targets
|
||||||
|
ifeq ($(FLASH_SIZE),)
|
||||||
|
ifeq ($(TARGET),$(filter $(TARGET),CJMCU))
|
||||||
|
FLASH_SIZE = 64
|
||||||
|
else ifeq ($(TARGET),$(filter $(TARGET),NAZE CC3D ALIENWIIF1 SPRACINGF3 OLIMEXINO))
|
||||||
|
FLASH_SIZE = 128
|
||||||
|
else ifeq ($(TARGET),$(filter $(TARGET),EUSTM32F103RC PORT103R STM32F3DISCOVERY CHEBUZZF3 NAZE32PRO SPARKY ALIENWIIF3))
|
||||||
|
FLASH_SIZE = 256
|
||||||
|
else
|
||||||
|
$(error FLASH_SIZE not configured for target)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
REVISION = $(shell git log -1 --format="%h")
|
REVISION = $(shell git log -1 --format="%h")
|
||||||
|
|
||||||
# Working directories
|
# Working directories
|
||||||
|
@ -92,7 +108,7 @@ DEVICE_STDPERIPH_SRC := $(DEVICE_STDPERIPH_SRC)\
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f303_256k.ld
|
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f303_$(FLASH_SIZE)k.ld
|
||||||
|
|
||||||
ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wdouble-promotion
|
ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wdouble-promotion
|
||||||
DEVICE_FLAGS = -DSTM32F303xC -DSTM32F303
|
DEVICE_FLAGS = -DSTM32F303xC -DSTM32F303
|
||||||
|
@ -125,7 +141,7 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \
|
||||||
$(CMSIS_DIR)/CM3/CoreSupport \
|
$(CMSIS_DIR)/CM3/CoreSupport \
|
||||||
$(CMSIS_DIR)/CM3/DeviceSupport/ST/STM32F10x \
|
$(CMSIS_DIR)/CM3/DeviceSupport/ST/STM32F10x \
|
||||||
|
|
||||||
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_256k.ld
|
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_$(FLASH_SIZE)k.ld
|
||||||
|
|
||||||
ARCH_FLAGS = -mthumb -mcpu=cortex-m3
|
ARCH_FLAGS = -mthumb -mcpu=cortex-m3
|
||||||
TARGET_FLAGS = -D$(TARGET) -pedantic
|
TARGET_FLAGS = -D$(TARGET) -pedantic
|
||||||
|
@ -169,7 +185,7 @@ DEVICE_STDPERIPH_SRC := $(DEVICE_STDPERIPH_SRC) \
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_128k.ld
|
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_$(FLASH_SIZE)k.ld
|
||||||
|
|
||||||
ARCH_FLAGS = -mthumb -mcpu=cortex-m3
|
ARCH_FLAGS = -mthumb -mcpu=cortex-m3
|
||||||
TARGET_FLAGS = -D$(TARGET) -pedantic
|
TARGET_FLAGS = -D$(TARGET) -pedantic
|
||||||
|
@ -177,6 +193,10 @@ DEVICE_FLAGS = -DSTM32F10X_MD -DSTM32F10X
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(FLASH_SIZE),)
|
||||||
|
DEVICE_FLAGS := $(DEVICE_FLAGS) -DFLASH_SIZE=$(FLASH_SIZE)
|
||||||
|
endif
|
||||||
|
|
||||||
TARGET_DIR = $(ROOT)/src/main/target/$(TARGET)
|
TARGET_DIR = $(ROOT)/src/main/target/$(TARGET)
|
||||||
TARGET_SRC = $(notdir $(wildcard $(TARGET_DIR)/*.c))
|
TARGET_SRC = $(notdir $(wildcard $(TARGET_DIR)/*.c))
|
||||||
|
|
||||||
|
@ -368,14 +388,10 @@ OLIMEXINO_SRC = startup_stm32f10x_md_gcc.S \
|
||||||
$(HIGHEND_SRC) \
|
$(HIGHEND_SRC) \
|
||||||
$(COMMON_SRC)
|
$(COMMON_SRC)
|
||||||
|
|
||||||
ifeq ($(TARGET),CJMCU)
|
|
||||||
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_64k.ld
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(OPBL),yes)
|
ifeq ($(OPBL),yes)
|
||||||
ifneq ($(filter $(TARGET),$(OPBL_VALID_TARGETS)),)
|
ifneq ($(filter $(TARGET),$(OPBL_VALID_TARGETS)),)
|
||||||
TARGET_FLAGS := -DOPBL $(TARGET_FLAGS)
|
TARGET_FLAGS := -DOPBL $(TARGET_FLAGS)
|
||||||
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_128k_opbl.ld
|
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f103_$(FLASH_SIZE)k_opbl.ld
|
||||||
.DEFAULT_GOAL := binary
|
.DEFAULT_GOAL := binary
|
||||||
else
|
else
|
||||||
$(error OPBL specified with a unsupported target)
|
$(error OPBL specified with a unsupported target)
|
||||||
|
@ -514,10 +530,6 @@ SPRACINGF3_SRC = \
|
||||||
$(HIGHEND_SRC) \
|
$(HIGHEND_SRC) \
|
||||||
$(COMMON_SRC)
|
$(COMMON_SRC)
|
||||||
|
|
||||||
ifeq ($(TARGET),SPRACINGF3)
|
|
||||||
LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f303_128k.ld
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Search path and source files for the ST stdperiph library
|
# Search path and source files for the ST stdperiph library
|
||||||
VPATH := $(VPATH):$(STDPERIPH_DIR)/src
|
VPATH := $(VPATH):$(STDPERIPH_DIR)/src
|
||||||
|
|
||||||
|
|
|
@ -88,24 +88,44 @@ void useRcControlsConfig(modeActivationCondition_t *modeActivationConditions, es
|
||||||
|
|
||||||
#define FLASH_TO_RESERVE_FOR_CONFIG 0x800
|
#define FLASH_TO_RESERVE_FOR_CONFIG 0x800
|
||||||
|
|
||||||
#ifndef FLASH_PAGE_COUNT
|
#if !defined(FLASH_SIZE)
|
||||||
#ifdef STM32F303xC
|
#error "Flash size not defined for target. (specify in KB)"
|
||||||
#define FLASH_PAGE_COUNT 128
|
|
||||||
#define FLASH_PAGE_SIZE ((uint16_t)0x800)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef STM32F10X_MD
|
|
||||||
#define FLASH_PAGE_COUNT 128
|
#ifndef FLASH_PAGE_SIZE
|
||||||
#define FLASH_PAGE_SIZE ((uint16_t)0x400)
|
#ifdef STM32F303xC
|
||||||
|
#define FLASH_PAGE_SIZE ((uint16_t)0x800)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef STM32F10X_MD
|
||||||
|
#define FLASH_PAGE_SIZE ((uint16_t)0x400)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef STM32F10X_HD
|
||||||
|
#define FLASH_PAGE_SIZE ((uint16_t)0x800)
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef STM32F10X_HD
|
#if !defined(FLASH_SIZE) && !defined(FLASH_PAGE_COUNT)
|
||||||
#define FLASH_PAGE_COUNT 128
|
#ifdef STM32F10X_MD
|
||||||
#define FLASH_PAGE_SIZE ((uint16_t)0x800)
|
#define FLASH_PAGE_COUNT 128
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef STM32F10X_HD
|
||||||
|
#define FLASH_PAGE_COUNT 128
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(FLASH_PAGE_COUNT) || !defined(FLASH_PAGE_SIZE)
|
#if defined(FLASH_SIZE)
|
||||||
|
#define FLASH_PAGE_COUNT ((FLASH_SIZE * 0x400) / FLASH_PAGE_SIZE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(FLASH_PAGE_SIZE)
|
||||||
|
#error "Flash page size not defined for target."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(FLASH_PAGE_COUNT)
|
||||||
#error "Flash page count not defined for target."
|
#error "Flash page count not defined for target."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,6 @@
|
||||||
#define TARGET_BOARD_IDENTIFIER "CJM1" // CJMCU
|
#define TARGET_BOARD_IDENTIFIER "CJM1" // CJMCU
|
||||||
#define USE_HARDWARE_REVISION_DETECTION
|
#define USE_HARDWARE_REVISION_DETECTION
|
||||||
|
|
||||||
#define FLASH_PAGE_COUNT 64
|
|
||||||
#define FLASH_PAGE_SIZE ((uint16_t)0x400)
|
|
||||||
|
|
||||||
#define LED0_GPIO GPIOC
|
#define LED0_GPIO GPIOC
|
||||||
#define LED0_PIN Pin_14 // PC14 (LED)
|
#define LED0_PIN Pin_14 // PC14 (LED)
|
||||||
#define LED0
|
#define LED0
|
||||||
|
@ -61,7 +58,6 @@
|
||||||
// #define SOFT_I2C_PB67
|
// #define SOFT_I2C_PB67
|
||||||
|
|
||||||
#define SERIAL_RX
|
#define SERIAL_RX
|
||||||
//#define BLACKBOX
|
|
||||||
//#define USE_SERVOS
|
//#define USE_SERVOS
|
||||||
|
|
||||||
#define SPEKTRUM_BIND
|
#define SPEKTRUM_BIND
|
||||||
|
@ -71,3 +67,7 @@
|
||||||
|
|
||||||
// Since the CJMCU PCB has holes for 4 motors in each corner we can save same flash space by disabling support for other mixers.
|
// Since the CJMCU PCB has holes for 4 motors in each corner we can save same flash space by disabling support for other mixers.
|
||||||
#define USE_QUAD_MIXER_ONLY
|
#define USE_QUAD_MIXER_ONLY
|
||||||
|
|
||||||
|
#if (FLASH_SIZE > 64)
|
||||||
|
#define BLACKBOX
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue