@@ -59,59 +59,61 @@ include $(TOP)/supervisor/supervisor.mk
59
59
# Include make rules and variables common across CircuitPython builds.
60
60
include $(TOP ) /py/circuitpy_defns.mk
61
61
62
- CROSS_COMPILE = xtensa-esp32s2 -elf-
62
+ CROSS_COMPILE = xtensa-$( IDF_TARGET ) -elf-
63
63
64
64
# ######################################
65
65
# CFLAGS
66
66
# ######################################
67
67
68
- INC += -I.
69
- INC += -I./boards
70
- INC += -I./boards/$(BOARD )
71
- INC += -I./peripherals
72
- INC += -I../..
73
- INC += -I../../lib/mp-readline
74
- INC += -I../../lib/tinyusb/src
75
- INC += -I../../supervisor/shared/usb
76
- INC += -I$(BUILD )
77
- INC += -I$(BUILD ) /genhdr
78
- INC += -I$(BUILD ) /esp-idf/config
79
-
80
- INC += -isystem esp-idf
81
- INC += -isystem esp-idf/components/app_update/include
82
- INC += -isystem esp-idf/components/bootloader_support/include
83
- INC += -isystem esp-idf/components/driver/esp32s2/include
84
- INC += -isystem esp-idf/components/driver/include
85
- INC += -isystem esp-idf/components/esp32s2/include
86
- INC += -isystem esp-idf/components/esp_common/include
87
- INC += -isystem esp-idf/components/esp_event/include
88
- INC += -isystem esp-idf/components/esp_hw_support/include
89
- INC += -isystem esp-idf/components/esp_netif/include
90
- INC += -isystem esp-idf/components/esp_pm/include
91
- INC += -isystem esp-idf/components/esp_ringbuf/include
92
- INC += -isystem esp-idf/components/esp_rom/include
93
- INC += -isystem esp-idf/components/esp_system/include
94
- INC += -isystem esp-idf/components/esp_timer/include
95
- INC += -isystem esp-idf/components/esp_wifi/include
96
- INC += -isystem esp-idf/components/freertos/include
97
- INC += -isystem esp-idf/components/freertos/include/freertos
98
- INC += -isystem esp-idf/components/freertos/port/xtensa/include
99
- INC += -isystem esp-idf/components/hal/include
100
- INC += -isystem esp-idf/components/hal/esp32s2/include
101
- INC += -isystem esp-idf/components/heap/include
102
- INC += -isystem esp-idf/components/log/include/
103
- INC += -isystem esp-idf/components/lwip/lwip/src/include
104
- INC += -isystem esp-idf/components/lwip/port/esp32/include
105
- INC += -isystem esp-idf/components/lwip/include/apps/sntp
106
- INC += -isystem esp-idf/components/mbedtls/mbedtls/include
107
- INC += -isystem esp-idf/components/mbedtls/port/include/
108
- INC += -isystem esp-idf/components/newlib/platform_include
109
- INC += -isystem esp-idf/components/nvs_flash/include
110
- INC += -isystem esp-idf/components/soc/include
111
- INC += -isystem esp-idf/components/soc/esp32s2/include
112
- INC += -isystem esp-idf/components/spi_flash/include
113
- INC += -isystem esp-idf/components/xtensa/esp32s2/include
114
- INC += -isystem esp-idf/components/xtensa/include
68
+ INC += -I.\
69
+ -I./boards \
70
+ -I./boards/$(BOARD ) \
71
+ -I./peripherals \
72
+ -I../.. \
73
+ -I../../lib/mp-readline \
74
+ -I../../lib/tinyusb/src \
75
+ -I../../supervisor/shared/usb \
76
+ -I$(BUILD ) \
77
+ -I$(BUILD ) /genhdr \
78
+ -I$(BUILD ) /esp-idf/config \
79
+ -isystem esp-idf \
80
+ -isystem esp-idf/components/app_update/include \
81
+ -isystem esp-idf/components/bootloader_support/include \
82
+ -isystem esp-idf/components/driver/include \
83
+ -isystem esp-idf/components/driver/$(IDF_TARGET ) /include \
84
+ -isystem esp-idf/components/$(IDF_TARGET ) /include \
85
+ -isystem esp-idf/components/esp_adc_cal/include \
86
+ -isystem esp-idf/components/esp_common/include \
87
+ -isystem esp-idf/components/esp_event/include \
88
+ -isystem esp-idf/components/esp_hw_support/include \
89
+ -isystem esp-idf/components/esp_netif/include \
90
+ -isystem esp-idf/components/esp_pm/include \
91
+ -isystem esp-idf/components/esp_ringbuf/include \
92
+ -isystem esp-idf/components/esp_rom/include \
93
+ -isystem esp-idf/components/esp_system/include \
94
+ -isystem esp-idf/components/esp_timer/include \
95
+ -isystem esp-idf/components/esp_wifi/include \
96
+ -isystem esp-idf/components/freertos/include \
97
+ -isystem esp-idf/components/freertos/include/freertos \
98
+ -isystem esp-idf/components/freertos/port/xtensa/include \
99
+ -isystem esp-idf/components/hal/include \
100
+ -isystem esp-idf/components/hal/$(IDF_TARGET ) /include \
101
+ -isystem esp-idf/components/hal/platform_port/include \
102
+ -isystem esp-idf/components/heap/include \
103
+ -isystem esp-idf/components/log/include \
104
+ -isystem esp-idf/components/lwip/include \
105
+ -isystem esp-idf/components/lwip/lwip/src/include \
106
+ -isystem esp-idf/components/lwip/port/esp32/include \
107
+ -isystem esp-idf/components/mbedtls/esp_crt_bundle/include \
108
+ -isystem esp-idf/components/mbedtls/mbedtls/include \
109
+ -isystem esp-idf/components/mbedtls/port/include \
110
+ -isystem esp-idf/components/newlib/platform_include \
111
+ -isystem esp-idf/components/nvs_flash/include \
112
+ -isystem esp-idf/components/soc/include \
113
+ -isystem esp-idf/components/soc/$(IDF_TARGET ) /include \
114
+ -isystem esp-idf/components/spi_flash/include \
115
+ -isystem esp-idf/components/xtensa/include \
116
+ -isystem esp-idf/components/xtensa/$(IDF_TARGET ) /include
115
117
116
118
CFLAGS += -DHAVE_CONFIG_H \
117
119
-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" \
@@ -141,19 +143,19 @@ CFLAGS += $(INC) -Werror -Wall -mlongcalls -std=gnu11 -Wl,--gc-sections $(BASE_C
141
143
142
144
LDFLAGS = $(CFLAGS ) -Wl,-nostdlib -Wl,-Map=$@ .map -Wl,-cref -Wl,--undefined=uxTopUsedPriority
143
145
144
- LDFLAGS += -L$(BUILD ) /esp-idf/esp-idf/esp32s2 \
145
- -L$(BUILD ) /esp-idf/esp-idf/esp32s2 /ld \
146
- -Lesp-idf/components/esp32s2 /ld \
147
- -Lesp-idf/components/esp_rom/esp32s2 /ld \
148
- -Tesp32s2_out .ld \
149
- -Tesp32s2 .project.ld \
150
- -Tesp32s2 .peripherals.ld \
151
- -Tesp32s2 .rom.ld \
152
- -Tesp32s2 .rom.api.ld \
153
- -Tesp32s2 .rom.libgcc.ld \
154
- -Tesp32s2 .rom.newlib-data.ld \
155
- -Tesp32s2 .rom.newlib-funcs.ld \
156
- -Tesp32s2 .rom.spiflash.ld
146
+ LDFLAGS += -L$(BUILD ) /esp-idf/esp-idf/$( IDF_TARGET ) \
147
+ -L$(BUILD ) /esp-idf/esp-idf/$( IDF_TARGET ) /ld \
148
+ -Lesp-idf/components/$( IDF_TARGET ) /ld \
149
+ -Lesp-idf/components/esp_rom/$( IDF_TARGET ) /ld \
150
+ -T $( IDF_TARGET ) _out .ld \
151
+ -T $( IDF_TARGET ) .project.ld \
152
+ -T $( IDF_TARGET ) .peripherals.ld \
153
+ -T $( IDF_TARGET ) .rom.ld \
154
+ -T $( IDF_TARGET ) .rom.api.ld \
155
+ -T $( IDF_TARGET ) .rom.libgcc.ld \
156
+ -T $( IDF_TARGET ) .rom.newlib-data.ld \
157
+ -T $( IDF_TARGET ) .rom.newlib-funcs.ld \
158
+ -T $( IDF_TARGET ) .rom.spiflash.ld
157
159
158
160
LDFLAGS += -Wl,-Bstatic \
159
161
-Wl,--no-warn-mismatch \
@@ -188,11 +190,11 @@ SRC_C += \
188
190
boards/$(BOARD ) /pins.c \
189
191
modules/$(CIRCUITPY_MODULE ) .c \
190
192
lib/netutils/netutils.c \
193
+ peripherals/pcnt.c \
194
+ peripherals/rmt.c \
191
195
peripherals/timer.c \
192
196
peripherals/touch.c \
193
- peripherals/pcnt.c \
194
- peripherals/pins.c \
195
- peripherals/rmt.c
197
+ peripherals/$(IDF_TARGET ) /pins.c
196
198
197
199
ifneq ($(CIRCUITPY_USB ) ,0)
198
200
SRC_C += lib/tinyusb/src/portable/espressif/esp32sx/dcd_esp32sx.c
@@ -246,23 +248,22 @@ ifeq ($(DEBUG), 1)
246
248
else
247
249
DEBUG_SDKCONFIG = esp-idf-config/sdkconfig-opt.defaults
248
250
endif
249
- SDKCONFIGS = esp-idf-config/sdkconfig.defaults;$(DEBUG_SDKCONFIG ) ;$(FLASH_SDKCONFIG ) ;boards/$(BOARD ) /sdkconfig
251
+ SDKCONFIGS = esp-idf-config/$( IDF_TARGET ) / sdkconfig.defaults;$(DEBUG_SDKCONFIG ) ;$(FLASH_SDKCONFIG ) ;boards/$(BOARD ) /sdkconfig
250
252
251
253
# create the config headers
252
254
$(BUILD ) /esp-idf/config/sdkconfig.h : boards/$(BOARD ) /sdkconfig | $(BUILD ) /esp-idf
253
- IDF_PATH=$(IDF_PATH ) cmake -S . -B $(BUILD ) /esp-idf -DSDKCONFIG=$(BUILD ) /esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS=" $( SDKCONFIGS) " -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH ) /tools/cmake/toolchain-esp32s2 .cmake -DIDF_TARGET=esp32s2 -GNinja
255
+ IDF_PATH=$(IDF_PATH ) cmake -S . -B $(BUILD ) /esp-idf -DSDKCONFIG=$(BUILD ) /esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS=" $( SDKCONFIGS) " -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH ) /tools/cmake/toolchain-$( IDF_TARGET ) .cmake -DIDF_TARGET=$( IDF_TARGET ) -GNinja
254
256
255
257
# build a lib
256
258
# Adding -d explain -j 1 -v to the ninja line will output debug info
257
259
# $(BUILD)/esp-idf/esp-idf/%.a: $(BUILD)/esp-idf/config/sdkconfig.h
258
260
# ninja -C $(BUILD)/esp-idf esp-idf/$*.a
259
261
260
- $(BUILD ) /esp-idf/esp-idf/esp32s2/esp32s2_out.ld : $(BUILD ) /esp-idf/config/sdkconfig.h
261
- ninja -C $(BUILD ) /esp-idf esp-idf/esp32s2/esp32s2_out.ld
262
-
263
- $(BUILD ) /esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld : $(BUILD ) /esp-idf/config/sdkconfig.h
264
- ninja -C $(BUILD ) /esp-idf esp-idf/esp32s2/ld/esp32s2.project.ld
262
+ $(BUILD ) /esp-idf/esp-idf/$(IDF_TARGET ) /$(IDF_TARGET ) _out.ld : $(BUILD ) /esp-idf/config/sdkconfig.h
263
+ ninja -C $(BUILD ) /esp-idf esp-idf/$(IDF_TARGET ) /$(IDF_TARGET ) _out.ld
265
264
265
+ $(BUILD ) /esp-idf/esp-idf/$(IDF_TARGET ) /ld/$(IDF_TARGET ) .project.ld : $(BUILD ) /esp-idf/config/sdkconfig.h
266
+ ninja -C $(BUILD ) /esp-idf esp-idf/$(IDF_TARGET ) /ld/$(IDF_TARGET ) .project.ld
266
267
267
268
$(BUILD ) /esp-idf/partition_table/partition-table.bin : $(BUILD ) /esp-idf/config/sdkconfig.h
268
269
IDF_PATH=$(IDF_PATH ) ninja -C $(BUILD ) /esp-idf partition_table/partition-table.bin
@@ -276,20 +277,20 @@ menuconfig: $(BUILD)/esp-idf/config
276
277
# qstr builds include headers so we need to make sure they are up to date
277
278
$(HEADER_BUILD ) /qstr.split : | $(BUILD ) /esp-idf/config/sdkconfig.h
278
279
279
- ESP_IDF_COMPONENTS_LINK = app_update bootloader_support driver efuse esp32s2 esp_adc_cal esp_common esp_event esp_hw_support esp_netif esp_pm esp_ringbuf esp_rom esp_system esp_timer esp-tls esp_wifi freertos hal heap log lwip mbedtls newlib nvs_flash pthread soc spi_flash vfs wpa_supplicant xtensa
280
+ ESP_IDF_COMPONENTS_LINK = $( IDF_TARGET ) app_update bootloader_support driver efuse esp_adc_cal esp_common esp_event esp_hw_support esp_netif esp_pm esp_ringbuf esp_rom esp_system esp_timer esp-tls esp_wifi freertos hal heap log lwip mbedtls newlib nvs_flash pthread soc spi_flash vfs wpa_supplicant xtensa
280
281
281
282
ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/$(component ) /lib$(component ) .a)
282
283
ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/$(component ) /lib$(component ) .a)
283
284
284
285
MBEDTLS_COMPONENTS_LINK = crypto tls x509
285
286
MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component ) .a)
286
287
287
- BINARY_BLOBS = esp-idf/components/xtensa/esp32s2 /libxt_hal.a
288
+ BINARY_BLOBS = esp-idf/components/xtensa/$( IDF_TARGET ) /libxt_hal.a
288
289
BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a librtc.a libsmartconfig.a libphy.a
289
- BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/esp32s2 /, $(BINARY_WIFI_BLOBS ) )
290
+ BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/$( IDF_TARGET ) /, $(BINARY_WIFI_BLOBS ) )
290
291
291
- ESP_IDF_COMPONENTS_EXPANDED += esp-idf/components/xtensa/esp32s2 /libxt_hal.a
292
- ESP_AUTOGEN_LD = $(BUILD ) /esp-idf/esp-idf/esp32s2/esp32s2_out .ld $(BUILD ) /esp-idf/esp-idf/esp32s2 /ld/esp32s2 .project.ld
292
+ ESP_IDF_COMPONENTS_EXPANDED += esp-idf/components/xtensa/$( IDF_TARGET ) /libxt_hal.a
293
+ ESP_AUTOGEN_LD = $(BUILD ) /esp-idf/esp-idf/$( IDF_TARGET ) / $( IDF_TARGET ) _out .ld $(BUILD ) /esp-idf/esp-idf/$( IDF_TARGET ) /ld/$( IDF_TARGET ) .project.ld
293
294
294
295
FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE ) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE )
295
296
@@ -305,8 +306,8 @@ esp-idf-stamp: $(BUILD)/esp-idf/config/sdkconfig.h
305
306
esp-idf/bootloader_support/libbootloader_support.a \
306
307
esp-idf/driver/libdriver.a \
307
308
esp-idf/efuse/libefuse.a \
308
- esp-idf/esp32s2/libesp32s2 .a \
309
- esp-idf/esp32s2 /ld/esp32s2 .project.ld \
309
+ esp-idf/$( IDF_TARGET ) /lib $( IDF_TARGET ) .a \
310
+ esp-idf/$( IDF_TARGET ) /ld/$( IDF_TARGET ) .project.ld \
310
311
esp-idf/esp_adc_cal/libesp_adc_cal.a \
311
312
esp-idf/esp_common/libesp_common.a \
312
313
esp-idf/esp_event/libesp_event.a \
@@ -340,7 +341,7 @@ $(BUILD)/firmware.elf: $(OBJ) | esp-idf-stamp
340
341
341
342
$(BUILD ) /circuitpython-firmware.bin : $(BUILD ) /firmware.elf | tools/build_memory_info.py
342
343
$(STEPECHO ) " Create $@ "
343
- $(Q ) esptool.py --chip esp32s2 elf2image $(FLASH_FLAGS ) --elf-sha256-offset 0xb0 -o $@ $^
344
+ $(Q ) esptool.py --chip $( IDF_TARGET ) elf2image $(FLASH_FLAGS ) --elf-sha256-offset 0xb0 -o $@ $^
344
345
$(Q )$(PYTHON3 ) tools/build_memory_info.py $< $(BUILD ) /esp-idf/sdkconfig $@
345
346
346
347
$(BUILD ) /firmware.bin : $(BUILD ) /circuitpython-firmware.bin | esp-idf-stamp
@@ -351,10 +352,10 @@ $(BUILD)/firmware.uf2: $(BUILD)/circuitpython-firmware.bin
351
352
$(Q )$(PYTHON3 ) $(TOP ) /tools/uf2/utils/uf2conv.py -f 0xbfdd4eee -b 0x0000 -c -o $@ $^
352
353
353
354
flash : $(BUILD ) /firmware.bin
354
- esptool.py --chip esp32s2 -p $(PORT ) $(ESPTOOL_FLAGS ) write_flash $(FLASH_FLAGS ) 0x0000 $^
355
+ esptool.py --chip $( IDF_TARGET ) -p $(PORT ) $(ESPTOOL_FLAGS ) write_flash $(FLASH_FLAGS ) 0x0000 $^
355
356
356
357
flash-circuitpython-only : $(BUILD ) /circuitpython-firmware.bin
357
- esptool.py --chip esp32s2 -p $(PORT ) $(ESPTOOL_FLAGS ) write_flash $(FLASH_FLAGS ) 0x10000 $^
358
+ esptool.py --chip $( IDF_TARGET ) -p $(PORT ) $(ESPTOOL_FLAGS ) write_flash $(FLASH_FLAGS ) 0x10000 $^
358
359
359
360
monitor : $(BUILD ) /firmware.elf
360
361
cp $< build/circuitpython.elf
0 commit comments