mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Use USER_C_MODULES to add OpenMV modules.
This commit is contained in:
parent
368c668421
commit
06e8ba3969
@ -103,7 +103,7 @@ OMV_SRC_QSTR := $(wildcard $(TOP_DIR)/$(OMV_DIR)/modules/*.c)
|
|||||||
OMV_SRC_QSTR += $(wildcard $(TOP_DIR)/$(OMV_DIR)/ports/$(PORT)/modules/*.c)
|
OMV_SRC_QSTR += $(wildcard $(TOP_DIR)/$(OMV_DIR)/ports/$(PORT)/modules/*.c)
|
||||||
|
|
||||||
# The following command line args are passed to MicroPython's top Makefile.
|
# The following command line args are passed to MicroPython's top Makefile.
|
||||||
MICROPY_ARGS = PORT=$(PORT) BOARD=$(TARGET) DEBUG=$(DEBUG) OMV_SRC_QSTR="$(OMV_SRC_QSTR)" MPY_LIB_DIR=$(MPY_LIB_DIR) MICROPY_ROM_TEXT_COMPRESSION=$(ROM_TEXT_COMPRESSION)
|
MICROPY_ARGS = PORT=$(PORT) BOARD=$(TARGET) DEBUG=$(DEBUG) MPY_LIB_DIR=$(MPY_LIB_DIR) MICROPY_ROM_TEXT_COMPRESSION=$(ROM_TEXT_COMPRESSION) USER_C_MODULES=$(TOP_DIR)/$(OMV_DIR) #OMV_SRC_QSTR="$(OMV_SRC_QSTR)"
|
||||||
|
|
||||||
# Configure additional built-in modules. Note must define both the CFLAGS and the Make command line args.
|
# Configure additional built-in modules. Note must define both the CFLAGS and the Make command line args.
|
||||||
ifeq ($(MICROPY_PY_SENSOR), 1)
|
ifeq ($(MICROPY_PY_SENSOR), 1)
|
||||||
@ -173,6 +173,11 @@ MPY_CFLAGS += -DMICROPY_PY_BUZZER=1
|
|||||||
MICROPY_ARGS += MICROPY_PY_BUZZER=1
|
MICROPY_ARGS += MICROPY_PY_BUZZER=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CUBEAI), 1)
|
||||||
|
MPY_CFLAGS += -DMICROPY_PY_CUBEAI=1
|
||||||
|
MICROPY_ARGS += MICROPY_PY_CUBEAI=1
|
||||||
|
endif
|
||||||
|
|
||||||
# Include the port Makefile.
|
# Include the port Makefile.
|
||||||
include $(OMV_DIR)/ports/$(PORT)/omv_portconfig.mk
|
include $(OMV_DIR)/ports/$(PORT)/omv_portconfig.mk
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 97e320cdb9d7a209821a039491a9df5ad060e121
|
Subproject commit f012171f306999509668e8b40cad7cfb50de5652
|
||||||
@ -41,19 +41,6 @@ SRCS += $(addprefix sensors/, \
|
|||||||
paj6100.c \
|
paj6100.c \
|
||||||
)
|
)
|
||||||
|
|
||||||
SRCS += $(addprefix modules/, \
|
|
||||||
py_clock.c \
|
|
||||||
py_gif.c \
|
|
||||||
py_helper.c \
|
|
||||||
py_image.c \
|
|
||||||
py_imageio.c \
|
|
||||||
py_mjpeg.c \
|
|
||||||
py_omv.c \
|
|
||||||
py_sensor.c \
|
|
||||||
py_tf.c \
|
|
||||||
py_fir.c \
|
|
||||||
)
|
|
||||||
|
|
||||||
SRCS += $(addprefix imlib/, \
|
SRCS += $(addprefix imlib/, \
|
||||||
agast.c \
|
agast.c \
|
||||||
apriltag.c \
|
apriltag.c \
|
||||||
@ -108,7 +95,6 @@ SRCS += $(addprefix imlib/, \
|
|||||||
)
|
)
|
||||||
|
|
||||||
SRCS += $(wildcard ports/$(PORT)/*.c)
|
SRCS += $(wildcard ports/$(PORT)/*.c)
|
||||||
SRCS += $(wildcard ports/$(PORT)/modules/*.c)
|
|
||||||
|
|
||||||
OBJS = $(addprefix $(BUILD)/, $(SRCS:.c=.o))
|
OBJS = $(addprefix $(BUILD)/, $(SRCS:.c=.o))
|
||||||
OBJ_DIRS = $(sort $(dir $(OBJS)))
|
OBJ_DIRS = $(sort $(dir $(OBJS)))
|
||||||
|
|||||||
23
src/omv/modules/micropython.mk
Normal file
23
src/omv/modules/micropython.mk
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
OMV_MOD_DIR := $(USERMOD_DIR)
|
||||||
|
OMV_PORT_MOD_DIR := $(OMV_MOD_DIR)/../ports/$(PORT)/modules
|
||||||
|
|
||||||
|
# Add OpenMV common modules.
|
||||||
|
SRC_USERMOD += $(wildcard $(OMV_MOD_DIR)/*.c)
|
||||||
|
|
||||||
|
# Add OpenMV port-specific modules.
|
||||||
|
SRC_USERMOD += $(wildcard $(OMV_PORT_MOD_DIR)/*.c)
|
||||||
|
|
||||||
|
# Extra module flags.
|
||||||
|
CFLAGS_USERMOD += -I$(OMV_MOD_DIR) -I$(OMV_PORT_MOD_DIR) -Wno-float-conversion
|
||||||
|
|
||||||
|
# Add CubeAI module if enabled.
|
||||||
|
ifeq ($(MICROPY_PY_CUBEAI), 1)
|
||||||
|
SRC_USERMOD += $(OMV_MOD_DIR)/../../stm32cubeai/py_st_nn.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(MICROPY_PY_ULAB), 1)
|
||||||
|
# NOTE: overrides USERMOD_DIR
|
||||||
|
# Workaround to build and link ulab.
|
||||||
|
USERMOD_DIR := $(USERMOD_DIR)/ulab/code
|
||||||
|
include $(USERMOD_DIR)/micropython.mk
|
||||||
|
endif
|
||||||
@ -122,19 +122,6 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/sensors/, \
|
|||||||
hm01b0.o \
|
hm01b0.o \
|
||||||
)
|
)
|
||||||
|
|
||||||
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/modules/, \
|
|
||||||
py_clock.o \
|
|
||||||
py_gif.o \
|
|
||||||
py_helper.o \
|
|
||||||
py_image.o \
|
|
||||||
py_imageio.o \
|
|
||||||
py_mjpeg.o \
|
|
||||||
py_omv.o \
|
|
||||||
py_sensor.o \
|
|
||||||
py_tf.o \
|
|
||||||
py_fir.o \
|
|
||||||
)
|
|
||||||
|
|
||||||
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/imlib/, \
|
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/imlib/, \
|
||||||
agast.o \
|
agast.o \
|
||||||
apriltag.o \
|
apriltag.o \
|
||||||
@ -189,7 +176,8 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/imlib/, \
|
|||||||
)
|
)
|
||||||
|
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(OMV_DIR)/ports/$(PORT)/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(OMV_DIR)/ports/$(PORT)/*.o)
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(OMV_DIR)/ports/$(PORT)/modules/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/modules/*.o)
|
||||||
|
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/ports/$(PORT)/modules/*.o)
|
||||||
|
|
||||||
#------------- MicroPy Objects -------------------#
|
#------------- MicroPy Objects -------------------#
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/py/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/py/*.o)
|
||||||
@ -300,7 +288,7 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/modules/,\
|
|||||||
)
|
)
|
||||||
|
|
||||||
ifeq ($(MICROPY_PY_ULAB), 1)
|
ifeq ($(MICROPY_PY_ULAB), 1)
|
||||||
FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/extmod/ulab/,\
|
FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/modules/ulab/,\
|
||||||
code/scipy/optimize/optimize.o \
|
code/scipy/optimize/optimize.o \
|
||||||
code/scipy/signal/signal.o \
|
code/scipy/signal/signal.o \
|
||||||
code/scipy/special/special.o \
|
code/scipy/special/special.o \
|
||||||
|
|||||||
@ -85,6 +85,8 @@ target_include_directories(${MICROPY_TARGET} PRIVATE
|
|||||||
${OMV_BOARD_CONFIG_DIR}
|
${OMV_BOARD_CONFIG_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
file(GLOB OMV_USER_MODULES ${TOP_DIR}/${OMV_DIR}/modules/*.c)
|
||||||
|
|
||||||
target_sources(${MICROPY_TARGET} PRIVATE
|
target_sources(${MICROPY_TARGET} PRIVATE
|
||||||
${TOP_DIR}/${OMV_DIR}/alloc/xalloc.c
|
${TOP_DIR}/${OMV_DIR}/alloc/xalloc.c
|
||||||
${TOP_DIR}/${OMV_DIR}/alloc/fb_alloc.c
|
${TOP_DIR}/${OMV_DIR}/alloc/fb_alloc.c
|
||||||
@ -113,17 +115,6 @@ target_sources(${MICROPY_TARGET} PRIVATE
|
|||||||
${TOP_DIR}/${OMV_DIR}/sensors/hm01b0.c
|
${TOP_DIR}/${OMV_DIR}/sensors/hm01b0.c
|
||||||
${TOP_DIR}/${OMV_DIR}/sensors/gc2145.c
|
${TOP_DIR}/${OMV_DIR}/sensors/gc2145.c
|
||||||
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_clock.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_gif.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_helper.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_image.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_imageio.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_mjpeg.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_omv.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_sensor.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_tf.c
|
|
||||||
${TOP_DIR}/${OMV_DIR}/modules/py_fir.c
|
|
||||||
|
|
||||||
${TOP_DIR}/${OMV_DIR}/imlib/agast.c
|
${TOP_DIR}/${OMV_DIR}/imlib/agast.c
|
||||||
${TOP_DIR}/${OMV_DIR}/imlib/apriltag.c
|
${TOP_DIR}/${OMV_DIR}/imlib/apriltag.c
|
||||||
${TOP_DIR}/${OMV_DIR}/imlib/bayer.c
|
${TOP_DIR}/${OMV_DIR}/imlib/bayer.c
|
||||||
@ -178,6 +169,8 @@ target_sources(${MICROPY_TARGET} PRIVATE
|
|||||||
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/main.c
|
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/main.c
|
||||||
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/cambus.c
|
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/cambus.c
|
||||||
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/sensor.c
|
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/sensor.c
|
||||||
|
|
||||||
|
${OMV_USER_MODULES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(MICROPY_PY_SENSOR)
|
if(MICROPY_PY_SENSOR)
|
||||||
@ -214,7 +207,7 @@ if(MICROPY_PY_AUDIO)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MICROPY_PY_ULAB)
|
if(MICROPY_PY_ULAB)
|
||||||
set(MICROPY_ULAB_DIR "${MICROPY_DIR}/extmod/ulab")
|
set(MICROPY_ULAB_DIR "${TOP_DIR}/${OMV_DIR}/modules/ulab")
|
||||||
|
|
||||||
target_include_directories(${MICROPY_TARGET} PRIVATE
|
target_include_directories(${MICROPY_TARGET} PRIVATE
|
||||||
${MICROPY_ULAB_DIR}/code/
|
${MICROPY_ULAB_DIR}/code/
|
||||||
@ -249,6 +242,7 @@ if(MICROPY_PY_ULAB)
|
|||||||
|
|
||||||
target_compile_definitions(${MICROPY_TARGET} PRIVATE
|
target_compile_definitions(${MICROPY_TARGET} PRIVATE
|
||||||
MICROPY_PY_ULAB=1
|
MICROPY_PY_ULAB=1
|
||||||
|
MODULE_ULAB_ENABLED=1
|
||||||
ULAB_CONFIG_FILE="${OMV_BOARD_CONFIG_DIR}/ulab_config.h"
|
ULAB_CONFIG_FILE="${OMV_BOARD_CONFIG_DIR}/ulab_config.h"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -14,7 +14,8 @@ export TOP_DIR
|
|||||||
export CC=
|
export CC=
|
||||||
export CXX=
|
export CXX=
|
||||||
|
|
||||||
MICROPY_ARGS += BOARD=$(TARGET) BUILD=$(BUILD)/rp2 OMV_CMAKE=$(TOP_DIR)/$(OMV_DIR)/ports/$(PORT)/omv_portconfig.cmake
|
# Note this overrides USER_C_MODULES.
|
||||||
|
MICROPY_ARGS += BOARD=$(TARGET) BUILD=$(BUILD)/rp2 OMV_CMAKE=$(TOP_DIR)/$(OMV_DIR)/ports/$(PORT)/omv_portconfig.cmake USER_C_MODULES=""
|
||||||
|
|
||||||
###################################################
|
###################################################
|
||||||
all: $(OPENMV)
|
all: $(OPENMV)
|
||||||
|
|||||||
@ -156,19 +156,6 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/sensors/, \
|
|||||||
paj6100.o \
|
paj6100.o \
|
||||||
)
|
)
|
||||||
|
|
||||||
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/modules/, \
|
|
||||||
py_clock.o \
|
|
||||||
py_gif.o \
|
|
||||||
py_helper.o \
|
|
||||||
py_image.o \
|
|
||||||
py_imageio.o \
|
|
||||||
py_mjpeg.o \
|
|
||||||
py_omv.o \
|
|
||||||
py_sensor.o \
|
|
||||||
py_tf.o \
|
|
||||||
py_fir.o \
|
|
||||||
)
|
|
||||||
|
|
||||||
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/imlib/, \
|
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/imlib/, \
|
||||||
agast.o \
|
agast.o \
|
||||||
apriltag.o \
|
apriltag.o \
|
||||||
@ -223,7 +210,8 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/imlib/, \
|
|||||||
)
|
)
|
||||||
|
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(OMV_DIR)/ports/$(PORT)/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(OMV_DIR)/ports/$(PORT)/*.o)
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(OMV_DIR)/ports/$(PORT)/modules/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/modules/*.o)
|
||||||
|
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/ports/$(PORT)/modules/*.o)
|
||||||
|
|
||||||
#------------- MicroPy Objects -------------------#
|
#------------- MicroPy Objects -------------------#
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/py/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/py/*.o)
|
||||||
@ -404,7 +392,7 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/drivers/,\
|
|||||||
)
|
)
|
||||||
|
|
||||||
ifeq ($(MICROPY_PY_ULAB), 1)
|
ifeq ($(MICROPY_PY_ULAB), 1)
|
||||||
FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/extmod/ulab/,\
|
FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/modules/ulab/,\
|
||||||
code/scipy/optimize/optimize.o \
|
code/scipy/optimize/optimize.o \
|
||||||
code/scipy/signal/signal.o \
|
code/scipy/signal/signal.o \
|
||||||
code/scipy/special/special.o \
|
code/scipy/special/special.o \
|
||||||
|
|||||||
@ -10,10 +10,6 @@ CFLAGS += -I$(TOP_DIR)/stm32cubeai/
|
|||||||
CFLAGS += -I$(TOP_DIR)/stm32cubeai/data/
|
CFLAGS += -I$(TOP_DIR)/stm32cubeai/data/
|
||||||
CFLAGS += -I$(TOP_DIR)/stm32cubeai/AI/Inc/
|
CFLAGS += -I$(TOP_DIR)/stm32cubeai/AI/Inc/
|
||||||
|
|
||||||
# Append to OMV_QSTR_DEFS
|
|
||||||
OMV_SRC_QSTR += $(TOP_DIR)/stm32cubeai/py_st_nn.c
|
|
||||||
|
|
||||||
|
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/BasicMathFunctions/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/BasicMathFunctions/*.o)
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/SupportFunctions/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/SupportFunctions/*.o)
|
||||||
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/MatrixFunctions/*.o)
|
FIRM_OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/dsp/MatrixFunctions/*.o)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user