mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
ports/stm32: Update port Makefiles to support the new TFLM.
This commit is contained in:
parent
d51a11edbf
commit
7a62df38e3
@ -4,13 +4,46 @@ STARTUP ?= st/startup_$(shell echo $(MCU) | tr '[:upper:]' '[:lower:]')
|
||||
LDSCRIPT ?= stm32fxxx
|
||||
|
||||
# Compiler Flags
|
||||
CFLAGS += -std=gnu99 -Wall -Werror -Warray-bounds -mthumb -nostartfiles -fdata-sections -ffunction-sections
|
||||
CFLAGS += -fno-inline-small-functions -D$(MCU) -D$(CFLAGS_MCU) -DARM_NN_TRUNCATE\
|
||||
-fsingle-precision-constant -Wdouble-promotion -mcpu=$(CPU) -mtune=$(CPU) -mfpu=$(FPU) -mfloat-abi=hard
|
||||
CFLAGS += -D__FPU_PRESENT=1 -D__VFP_FP__ -DUSE_DEVICE_MODE -DHSE_VALUE=$(OMV_HSE_VALUE)\
|
||||
-D$(TARGET) -DVECT_TAB_OFFSET=$(VECT_TAB_OFFSET) -DMAIN_APP_ADDR=$(MAIN_APP_ADDR) -DSTM32_HAL_H=$(HAL_INC)\
|
||||
-DCMSIS_MCU_H=$(CMSIS_MCU_H) -DUSE_FULL_LL_DRIVER
|
||||
CFLAGS += $(OMV_BOARD_EXTRA_CFLAGS)
|
||||
CFLAGS += -std=gnu99 \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-Warray-bounds \
|
||||
-mthumb \
|
||||
-nostartfiles \
|
||||
-fdata-sections \
|
||||
-ffunction-sections \
|
||||
-fno-inline-small-functions \
|
||||
-fsingle-precision-constant \
|
||||
-Wdouble-promotion \
|
||||
-mcpu=$(CPU) \
|
||||
-mtune=$(CPU) \
|
||||
-mfpu=$(FPU) \
|
||||
-mfloat-abi=hard \
|
||||
-D$(CFLAGS_MCU)
|
||||
|
||||
CFLAGS += -D$(MCU) \
|
||||
-D$(TARGET) \
|
||||
-DARM_NN_TRUNCATE \
|
||||
-D__FPU_PRESENT=1 \
|
||||
-D__VFP_FP__ \
|
||||
-DUSE_DEVICE_MODE \
|
||||
-DHSE_VALUE=$(OMV_HSE_VALUE)\
|
||||
-DVECT_TAB_OFFSET=$(VECT_TAB_OFFSET) \
|
||||
-DMAIN_APP_ADDR=$(MAIN_APP_ADDR) \
|
||||
-DSTM32_HAL_H=$(HAL_INC) \
|
||||
-DCMSIS_MCU_H=$(CMSIS_MCU_H) \
|
||||
-DUSE_FULL_LL_DRIVER \
|
||||
$(OMV_BOARD_EXTRA_CFLAGS)
|
||||
|
||||
# Linker Flags
|
||||
LDFLAGS = -mcpu=$(CPU) \
|
||||
-mabi=aapcs-linux \
|
||||
-mthumb \
|
||||
-mfpu=$(FPU) \
|
||||
-mfloat-abi=hard \
|
||||
-Wl,--gc-sections \
|
||||
-Wl,--print-memory-usage \
|
||||
-Wl,-T$(BUILD)/$(LDSCRIPT).lds
|
||||
|
||||
HAL_CFLAGS += -I$(TOP_DIR)/$(CMSIS_DIR)/include/
|
||||
HAL_CFLAGS += -I$(TOP_DIR)/$(CMSIS_DIR)/include/st
|
||||
@ -29,10 +62,16 @@ MPY_CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/ports/stm32/usbdev/core/inc/
|
||||
MPY_CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/ports/stm32/usbdev/class/inc/
|
||||
MPY_CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/ports/stm32/lwip_inc/
|
||||
MPY_CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/shared/runtime/
|
||||
MPY_CFLAGS += -DMICROPY_PY_SSL=1 -DMICROPY_SSL_MBEDTLS=1 -DMICROPY_STREAMS_POSIX_API=1 -DMICROPY_VFS_FAT=1
|
||||
MPY_CFLAGS += -DMICROPY_PY_SSL=1 \
|
||||
-DMICROPY_SSL_MBEDTLS=1 \
|
||||
-DMICROPY_STREAMS_POSIX_API=1 \
|
||||
-DMICROPY_VFS_FAT=1
|
||||
|
||||
MICROPY_ARGS += MICROPY_PY_SSL=1 MICROPY_SSL_MBEDTLS=1 MICROPY_PY_BTREE=1\
|
||||
STM32LIB_CMSIS_DIR=$(TOP_DIR)/$(CMSIS_DIR) STM32LIB_HAL_DIR=$(TOP_DIR)/$(HAL_DIR)
|
||||
MICROPY_ARGS += MICROPY_PY_SSL=1 \
|
||||
MICROPY_SSL_MBEDTLS=1 \
|
||||
MICROPY_PY_BTREE=1\
|
||||
STM32LIB_CMSIS_DIR=$(TOP_DIR)/$(CMSIS_DIR) \
|
||||
STM32LIB_HAL_DIR=$(TOP_DIR)/$(HAL_DIR)
|
||||
|
||||
OMV_CFLAGS += -I$(OMV_BOARD_CONFIG_DIR)
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(OMV_DIR)/
|
||||
@ -55,9 +94,8 @@ OMV_CFLAGS += -I$(TOP_DIR)/$(MLX90640_DIR)/include/
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(MLX90641_DIR)/include/
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(PIXART_DIR)/include/
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(DISPLAY_DIR)/include/
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(TENSORFLOW_DIR)/
|
||||
OMV_CFLAGS += -I$(BUILD)/$(TENSORFLOW_DIR)/
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(LIBPDM_DIR)/
|
||||
OMV_CFLAGS += -I$(BUILD)/$(TENSORFLOW_DIR)/
|
||||
|
||||
ifeq ($(OMV_ENABLE_BL), 1)
|
||||
CFLAGS += -DOMV_ENABLE_BOOTLOADER
|
||||
@ -65,8 +103,13 @@ BL_CFLAGS := $(CFLAGS) $(HAL_CFLAGS)
|
||||
BL_CFLAGS += -I$(OMV_BOARD_CONFIG_DIR)
|
||||
BL_CFLAGS += -I$(TOP_DIR)/$(BOOTLDR_DIR)/include/
|
||||
# Linker Flags
|
||||
BL_LDFLAGS = -mcpu=$(CPU) -mabi=aapcs-linux -mthumb -mfpu=$(FPU) -mfloat-abi=hard\
|
||||
-nostdlib -Wl,--gc-sections -Wl,-T$(BUILD)/$(BOOTLDR_DIR)/stm32fxxx.lds
|
||||
BL_LDFLAGS = -mcpu=$(CPU) \
|
||||
-mabi=aapcs-linux \
|
||||
-mthumb \
|
||||
-mfpu=$(FPU) \
|
||||
-mfloat-abi=hard \
|
||||
-Wl,--gc-sections \
|
||||
-Wl,-T$(BUILD)/$(BOOTLDR_DIR)/stm32fxxx.lds
|
||||
endif
|
||||
|
||||
ifeq ($(OMV_ENABLE_UVC), 1)
|
||||
@ -75,8 +118,13 @@ UVC_CFLAGS += -I$(OMV_BOARD_CONFIG_DIR)
|
||||
UVC_CFLAGS += -I$(TOP_DIR)/$(UVC_DIR)/include/
|
||||
UVC_CFLAGS += $(OMV_CFLAGS) $(MPY_CFLAGS)
|
||||
# Linker Flags
|
||||
UVC_LDFLAGS = -mcpu=$(CPU) -mabi=aapcs-linux -mthumb -mfpu=$(FPU) -mfloat-abi=hard\
|
||||
-nostdlib -Wl,--gc-sections -Wl,-T$(BUILD)/$(UVC_DIR)/stm32fxxx.lds
|
||||
UVC_LDFLAGS = -mcpu=$(CPU) \
|
||||
-mabi=aapcs-linux \
|
||||
-mthumb \
|
||||
-mfpu=$(FPU) \
|
||||
-mfloat-abi=hard\
|
||||
-Wl,--gc-sections \
|
||||
-Wl,-T$(BUILD)/$(UVC_DIR)/stm32fxxx.lds
|
||||
endif
|
||||
|
||||
ifeq ($(OMV_ENABLE_CM4), 1)
|
||||
@ -86,30 +134,53 @@ CM4_CFLAGS += -Og -ggdb3 -Wno-maybe-uninitialized
|
||||
else
|
||||
CM4_CFLAGS += -O2 -DNDEBUG
|
||||
endif
|
||||
CM4_CFLAGS += -std=gnu99 -Wall -Werror -Warray-bounds -mthumb -nostartfiles -fdata-sections -ffunction-sections
|
||||
CM4_CFLAGS += -D$(MCU) -D$(CFLAGS_MCU) -DARM_NN_TRUNCATE -DCORE_CM4\
|
||||
-fsingle-precision-constant -Wdouble-promotion -mcpu=cortex-m4 -mtune=cortex-m4 -mfpu=$(FPU) -mfloat-abi=hard
|
||||
CM4_CFLAGS += -D__FPU_PRESENT=1 -D__VFP_FP__ -DHSE_VALUE=$(OMV_HSE_VALUE)\
|
||||
-D$(TARGET) -DVECT_TAB_OFFSET=$(M4_VECT_TAB_OFFSET) -DMAIN_APP_ADDR=$(M4_APP_ADDR) -DSTM32_HAL_H=$(HAL_INC)
|
||||
CM4_CFLAGS += -std=gnu99 \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-Warray-bounds \
|
||||
-mthumb \
|
||||
-nostartfiles \
|
||||
-fdata-sections \
|
||||
-ffunction-sections \
|
||||
-fsingle-precision-constant \
|
||||
-Wdouble-promotion \
|
||||
-mcpu=cortex-m4 \
|
||||
-mtune=cortex-m4 \
|
||||
-mfpu=$(FPU) \
|
||||
-mfloat-abi=hard
|
||||
|
||||
CM4_CFLAGS += -D$(MCU) \
|
||||
-D$(CFLAGS_MCU) \
|
||||
-DARM_NN_TRUNCATE \
|
||||
-DCORE_CM4 \
|
||||
-D__FPU_PRESENT=1 \
|
||||
-D__VFP_FP__ \
|
||||
-DHSE_VALUE=$(OMV_HSE_VALUE) \
|
||||
-D$(TARGET) \
|
||||
-DMAIN_APP_ADDR=$(M4_APP_ADDR) \
|
||||
-DSTM32_HAL_H=$(HAL_INC) \
|
||||
-DVECT_TAB_OFFSET=$(M4_VECT_TAB_OFFSET) \
|
||||
|
||||
CM4_CFLAGS += $(HAL_CFLAGS)
|
||||
CM4_CFLAGS += -I$(OMV_BOARD_CONFIG_DIR)
|
||||
CM4_CFLAGS += -I$(TOP_DIR)/$(CM4_DIR)/include/
|
||||
# Linker Flags
|
||||
CM4_LDFLAGS = -mcpu=cortex-m4 -mabi=aapcs-linux -mthumb -mfpu=$(FPU) -mfloat-abi=hard\
|
||||
-nostdlib -Wl,--gc-sections -Wl,-T$(BUILD)/$(CM4_DIR)/stm32fxxx.lds
|
||||
CM4_LDFLAGS = -mcpu=cortex-m4 \
|
||||
-mabi=aapcs-linux \
|
||||
-mthumb \
|
||||
-mfpu=$(FPU) \
|
||||
-mfloat-abi=hard \
|
||||
-Wl,--gc-sections \
|
||||
-Wl,-T$(BUILD)/$(CM4_DIR)/stm32fxxx.lds
|
||||
endif
|
||||
|
||||
CFLAGS += $(HAL_CFLAGS) $(MPY_CFLAGS) $(OMV_CFLAGS)
|
||||
|
||||
# Linker Flags
|
||||
LDFLAGS = -mcpu=$(CPU) -mabi=aapcs-linux -mthumb -mfpu=$(FPU) -mfloat-abi=hard\
|
||||
-nostdlib -Wl,--gc-sections -Wl,-T$(BUILD)/$(LDSCRIPT).lds
|
||||
|
||||
#------------- Libraries ----------------#
|
||||
LIBS += $(TOP_DIR)/$(TENSORFLOW_DIR)/$(CPU)/libtf*.a
|
||||
ifeq ($(MICROPY_PY_AUDIO), 1)
|
||||
LIBS += $(TOP_DIR)/$(LIBPDM_DIR)/libPDMFilter_CM7_GCC_wc32.a
|
||||
endif
|
||||
LIBS += $(TOP_DIR)/$(TENSORFLOW_DIR)/libtflm/lib/libtflm-$(CPU)+fp-release.a
|
||||
|
||||
#------------- Firmware Objects ----------------#
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/*/*.o)
|
||||
@ -323,36 +394,6 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/lib/,\
|
||||
berkeley-db-1.xx/mpool/*.o \
|
||||
)
|
||||
|
||||
FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/lib/libm/,\
|
||||
math.o \
|
||||
roundf.o \
|
||||
asinfacosf.o \
|
||||
atanf.o \
|
||||
atan2f.o \
|
||||
fmodf.o \
|
||||
log1pf.o \
|
||||
acoshf.o \
|
||||
asinhf.o \
|
||||
atanhf.o \
|
||||
kf_rem_pio2.o \
|
||||
kf_sin.o \
|
||||
kf_cos.o \
|
||||
kf_tan.o \
|
||||
ef_rem_pio2.o \
|
||||
erf_lgamma.o \
|
||||
sf_sin.o \
|
||||
sf_cos.o \
|
||||
sf_tan.o \
|
||||
sf_frexp.o \
|
||||
sf_modf.o \
|
||||
sf_ldexp.o \
|
||||
sf_erf.o \
|
||||
wf_lgamma.o \
|
||||
wf_tgamma.o \
|
||||
nearbyintf.o \
|
||||
thumb_vfp_sqrtf.o \
|
||||
)
|
||||
|
||||
#------------- mbedtls -------------------#
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/lib/mbedtls/library/*.o)
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/lib/mbedtls_errors/*.o)
|
||||
@ -654,9 +695,9 @@ $(FW_DIR):
|
||||
|
||||
FIRMWARE_OBJS: | $(BUILD) $(FW_DIR)
|
||||
$(MAKE) -C $(CMSIS_DIR) BUILD=$(BUILD)/$(CMSIS_DIR) CFLAGS="$(CFLAGS) -fno-strict-aliasing -MMD"
|
||||
$(MAKE) -C $(TENSORFLOW_DIR) BUILD=$(BUILD)/$(TENSORFLOW_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(MICROPY_DIR)/ports/$(PORT) BUILD=$(BUILD)/$(MICROPY_DIR) $(MICROPY_ARGS)
|
||||
$(MAKE) -C $(HAL_DIR) BUILD=$(BUILD)/$(HAL_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(TENSORFLOW_DIR) BUILD=$(BUILD)/$(TENSORFLOW_DIR) CFLAGS="$(CFLAGS) -MMD" headers
|
||||
$(MAKE) -C $(MICROPY_DIR)/ports/$(PORT) BUILD=$(BUILD)/$(MICROPY_DIR) $(MICROPY_ARGS)
|
||||
$(MAKE) -C $(LEPTON_DIR) BUILD=$(BUILD)/$(LEPTON_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
ifeq ($(MICROPY_PY_IMU), 1)
|
||||
$(MAKE) -C $(LSM6DS3_DIR) BUILD=$(BUILD)/$(LSM6DS3_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
@ -671,6 +712,7 @@ endif
|
||||
$(MAKE) -C $(VL53L5CX_DIR) BUILD=$(BUILD)/$(VL53L5CX_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(PIXART_DIR) BUILD=$(BUILD)/$(PIXART_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(DISPLAY_DIR) BUILD=$(BUILD)/$(DISPLAY_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(TENSORFLOW_DIR) BUILD=$(BUILD)/$(TENSORFLOW_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(OMV_DIR) BUILD=$(BUILD)/$(OMV_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
ifeq ($(CUBEAI), 1)
|
||||
$(MAKE) -C $(CUBEAI_DIR) BUILD=$(BUILD)/$(CUBEAI_DIR) CFLAGS="$(CFLAGS) -fno-strict-aliasing -MMD"
|
||||
@ -691,7 +733,7 @@ endif
|
||||
# This target generates the main/app firmware image located at 0x08010000
|
||||
$(FIRMWARE): FIRMWARE_OBJS
|
||||
$(CPP) -P -E -I$(OMV_BOARD_CONFIG_DIR) $(OMV_DIR)/ports/$(PORT)/$(LDSCRIPT).ld.S > $(BUILD)/$(LDSCRIPT).lds
|
||||
$(CC) $(LDFLAGS) $(FIRM_OBJ) -o $(FW_DIR)/$(FIRMWARE).elf $(LIBS) -lgcc
|
||||
$(CC) $(LDFLAGS) $(FIRM_OBJ) -o $(FW_DIR)/$(FIRMWARE).elf $(LIBS) -lm
|
||||
$(OBJCOPY) -Obinary $(FW_DIR)/$(FIRMWARE).elf $(FW_DIR)/$(FIRMWARE).bin
|
||||
$(PYTHON) $(MKDFU) -D $(DFU_DEVICE) -b $(MAIN_APP_ADDR):$(FW_DIR)/$(FIRMWARE).bin $(FW_DIR)/$(FIRMWARE).dfu
|
||||
|
||||
@ -699,7 +741,7 @@ ifeq ($(OMV_ENABLE_BL), 1)
|
||||
# This target generates the bootloader.
|
||||
$(BOOTLOADER): FIRMWARE_OBJS BOOTLOADER_OBJS
|
||||
$(CPP) -P -E -I$(OMV_BOARD_CONFIG_DIR) $(BOOTLDR_DIR)/stm32fxxx.ld.S > $(BUILD)/$(BOOTLDR_DIR)/stm32fxxx.lds
|
||||
$(CC) $(BL_LDFLAGS) $(BOOT_OBJ) -o $(FW_DIR)/$(BOOTLOADER).elf -lgcc
|
||||
$(CC) $(BL_LDFLAGS) $(BOOT_OBJ) -o $(FW_DIR)/$(BOOTLOADER).elf
|
||||
$(OBJCOPY) -Obinary $(FW_DIR)/$(BOOTLOADER).elf $(FW_DIR)/$(BOOTLOADER).bin
|
||||
$(PYTHON) $(MKDFU) -D $(DFU_DEVICE) -b 0x08000000:$(FW_DIR)/$(BOOTLOADER).bin $(FW_DIR)/$(BOOTLOADER).dfu
|
||||
endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user