summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/device/board_test/CMakeLists.txt2
-rw-r--r--examples/device/cdc_msc_freertos/CMakeLists.txt2
-rw-r--r--examples/device/hid_composite_freertos/CMakeLists.txt2
-rw-r--r--examples/make.mk48
-rw-r--r--examples/rules.mk14
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