diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/device/board_test/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | examples/device/cdc_msc_freertos/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | examples/device/hid_composite_freertos/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | examples/make.mk | 48 | ||||
| -rw-r--r-- | examples/rules.mk | 14 |
5 files changed, 51 insertions, 17 deletions
diff --git a/examples/device/board_test/CMakeLists.txt b/examples/device/board_test/CMakeLists.txt index f0437dd04..c09ffe215 100644 --- a/examples/device/board_test/CMakeLists.txt +++ b/examples/device/board_test/CMakeLists.txt @@ -7,7 +7,7 @@ set(TOP "../../..") get_filename_component(TOP "${TOP}" REALPATH) # Add example src and bsp directories -set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/${BOARD}") +set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/esp32s2/boards" "${TOP}/hw/bsp/esp32s2/components") include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32s2) diff --git a/examples/device/cdc_msc_freertos/CMakeLists.txt b/examples/device/cdc_msc_freertos/CMakeLists.txt index 339f43a09..146b49cb0 100644 --- a/examples/device/cdc_msc_freertos/CMakeLists.txt +++ b/examples/device/cdc_msc_freertos/CMakeLists.txt @@ -7,7 +7,7 @@ set(TOP "../../..") get_filename_component(TOP "${TOP}" REALPATH) # Add example src and bsp directories -set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/${BOARD}") +set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/esp32s2/boards" "${TOP}/hw/bsp/esp32s2/components") include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32s2) diff --git a/examples/device/hid_composite_freertos/CMakeLists.txt b/examples/device/hid_composite_freertos/CMakeLists.txt index a429a1336..3c48e4e70 100644 --- a/examples/device/hid_composite_freertos/CMakeLists.txt +++ b/examples/device/hid_composite_freertos/CMakeLists.txt @@ -7,7 +7,7 @@ set(TOP "../../..") get_filename_component(TOP "${TOP}" REALPATH) # Add example src and bsp directories -set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/${BOARD}") +set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/esp32s2/boards" "${TOP}/hw/bsp/esp32s2/components") include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32s2) diff --git a/examples/make.mk b/examples/make.mk index 992a4e60e..bf3b36a62 100644 --- a/examples/make.mk +++ b/examples/make.mk @@ -2,14 +2,8 @@ # Common make definition for all examples # --------------------------------------- -#-------------- Select the board to build for. ------------ -BOARD_LIST = $(sort $(subst /.,,$(subst $(TOP)/hw/bsp/,,$(wildcard $(TOP)/hw/bsp/*/.)))) - -ifeq ($(filter $(BOARD),$(BOARD_LIST)),) - $(info You must provide a BOARD parameter with 'BOARD=', supported boards are:) - $(foreach b,$(BOARD_LIST),$(info - $(b))) - $(error Invalid BOARD specified) -endif +# Build directory +BUILD = _build/build-$(BOARD) # Handy check parameter function check_defined = \ @@ -19,11 +13,37 @@ __check_defined = \ $(if $(value $1),, \ $(error Undefined make flag: $1$(if $2, ($2)))) -# Build directory -BUILD = _build/build-$(BOARD) +#-------------- Select the board to build for. ------------ +#BOARD_LIST = $(sort $(subst /.,,$(subst $(TOP)/hw/bsp/,,$(wildcard $(TOP)/hw/bsp/*/.)))) +#ifeq ($(filter $(BOARD),$(BOARD_LIST)),) +# $(info You must provide a BOARD parameter with 'BOARD=', supported boards are:) +# $(foreach b,$(BOARD_LIST),$(info - $(b))) +# $(error Invalid BOARD specified) +#endif -# Board specific define -include $(TOP)/hw/bsp/$(BOARD)/board.mk +# Board without family +BOARD_PATH := $(subst $(TOP)/,,$(wildcard $(TOP)/hw/bsp/$(BOARD))) +FAMILY := + +# Board within family +ifeq ($(BOARD_PATH),) + BOARD_PATH := $(subst $(TOP)/,,$(wildcard $(TOP)/hw/bsp/*/boards/$(BOARD))) + FAMILY := $(word 3, $(subst /, ,$(BOARD_PATH))) + FAMILY_PATH = hw/bsp/$(FAMILY) +endif + +ifeq ($(BOARD_PATH),) + $(error Invalid BOARD specified) +endif + +ifeq ($(FAMILY),) + include $(TOP)/hw/bsp/$(BOARD)/board.mk +else + # Include Family and Board specific defs + include $(TOP)/$(FAMILY_PATH)/family.mk + + SRC_C += $(subst $(TOP)/,,$(wildcard $(TOP)/$(FAMILY_PATH)/*.c)) +endif #-------------- Cross Compiler ------------ # Can be set by board, default to ARM GCC @@ -45,9 +65,9 @@ endif #-------------- Source files and compiler flags -------------- -# Include all source C in board folder +# Include all source C in family & board folder SRC_C += hw/bsp/board.c -SRC_C += $(subst $(TOP)/,,$(wildcard $(TOP)/hw/bsp/$(BOARD)/*.c)) +SRC_C += $(subst $(TOP)/,,$(wildcard $(TOP)/$(BOARD_PATH)/*.c)) # Compiler Flags CFLAGS += \ diff --git a/examples/rules.mk b/examples/rules.mk index 2274d1cd2..fb1fe76c2 100644 --- a/examples/rules.mk +++ b/examples/rules.mk @@ -11,12 +11,26 @@ ifeq ($(CROSS_COMPILE),xtensa-esp32s2-elf-) all: idf.py -B$(BUILD) -DBOARD=$(BOARD) build +build: all + clean: idf.py -B$(BUILD) -DBOARD=$(BOARD) clean flash: idf.py -B$(BUILD) -DBOARD=$(BOARD) flash +bootloader-flash: + idf.py -B$(BUILD) -DBOARD=$(BOARD) bootloader-flash + +app-flash: + idf.py -B$(BUILD) -DBOARD=$(BOARD) app-flash + +erase: + idf.py -B$(BUILD) -DBOARD=$(BOARD) erase_flash + +monitor: + idf.py -B$(BUILD) -DBOARD=$(BOARD) monitor + else # GNU Make build system |
