@@ -38,8 +38,10 @@ PORT ?= /dev/tty.SLAB_USBtoUART
3838BUILD ?= build-$(BOARD )
3939
4040include ../../py/mkenv.mk
41+
4142# Board-specific
4243include boards/$(BOARD ) /mpconfigboard.mk
44+
4345# Port-specific
4446include mpconfigport.mk
4547
@@ -64,51 +66,52 @@ CROSS_COMPILE = xtensa-esp32s2-elf-
6466# ######################################
6567
6668INC += -I.
67- INC += -I../..
68- INC += -I$(BUILD )
69- INC += -I$(BUILD ) /genhdr
7069INC += -I./boards
7170INC += -I./boards/$(BOARD )
7271INC += -I./peripherals
72+ INC += -I../..
7373INC += -I../../lib/mp-readline
7474INC += -I../../lib/tinyusb/src
7575INC += -I../../supervisor/shared/usb
76+ INC += -I$(BUILD )
77+ INC += -I$(BUILD ) /genhdr
78+ INC += -I$(BUILD ) /esp-idf/config
7679
7780INC += -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
7884INC += -isystem esp-idf/components/driver/include
79- INC += -isystem esp-idf/components/freertos/include/freertos
80- INC += -isystem esp-idf/components/freertos/xtensa/include
8185INC += -isystem esp-idf/components/esp32s2/include
82- INC += -isystem esp-idf/components/xtensa/esp32s2/include
8386INC += -isystem esp-idf/components/esp_common/include
8487INC += -isystem esp-idf/components/esp_event/include
88+ INC += -isystem esp-idf/components/esp_hw_support/include
8589INC += -isystem esp-idf/components/esp_netif/include
90+ INC += -isystem esp-idf/components/esp_pm/include
8691INC += -isystem esp-idf/components/esp_ringbuf/include
8792INC += -isystem esp-idf/components/esp_rom/include
88- INC += -isystem esp-idf/components/esp_wifi/include
89- INC += -isystem esp-idf/components/xtensa/include
93+ INC += -isystem esp-idf/components/esp_system/include
9094INC += -isystem esp-idf/components/esp_timer/include
91- INC += -isystem esp-idf/components/mbedtls/mbedtls/include
92- INC += -isystem esp-idf/components/mbedtls/port/include/
93- INC += -isystem esp-idf/components/newlib/platform_include
94- INC += -isystem esp-idf/components/lwip/lwip/src/include
95- INC += -isystem esp-idf/components/lwip/port/esp32/include
96- INC += -isystem esp-idf/components/lwip/include/apps/sntp
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
9799INC += -isystem esp-idf/components/hal/include
98100INC += -isystem esp-idf/components/hal/esp32s2/include
101+ INC += -isystem esp-idf/components/heap/include
99102INC += -isystem esp-idf/components/log/include/
100- INC += -isystem esp-idf/components/driver/esp32s2/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
101110INC += -isystem esp-idf/components/soc/include
102- INC += -isystem esp-idf/components/soc/src/esp32s2/include
103- INC += -isystem esp-idf/components/soc/soc/include
104- INC += -isystem esp-idf/components/soc/soc/esp32s2/include
105- INC += -isystem esp-idf/components/heap/include
106- INC += -isystem esp-idf/components/esp_system/include
111+ INC += -isystem esp-idf/components/soc/esp32s2/include
107112INC += -isystem esp-idf/components/spi_flash/include
108- INC += -isystem esp-idf/components/nvs_flash/include
109- INC += -isystem esp-idf/components/app_update/include
110- INC += -isystem esp-idf/components/bootloader_support/include
111- INC += -I$(BUILD ) /esp-idf/config
113+ INC += -isystem esp-idf/components/xtensa/esp32s2/include
114+ INC += -isystem esp-idf/components/xtensa/include
112115
113116CFLAGS += -DHAVE_CONFIG_H \
114117 -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" \
@@ -136,27 +139,28 @@ CFLAGS += $(OPTIMIZATION_FLAGS)
136139
137140CFLAGS += $(INC ) -Werror -Wall -mlongcalls -std=gnu11 -Wl,--gc-sections $(BASE_CFLAGS ) $(C_DEFS ) $(CFLAGS_MOD ) $(COPT )
138141
139- LDFLAGS = $(CFLAGS ) -Wl,-nostdlib -Wl,-Map=$@ .map -Wl,-cref -Wl,--undefined=uxTopUsedPriority
140- LDFLAGS += -L$(BUILD ) /esp-idf/esp-idf/esp32s2 \
141- -Tesp32s2_out.ld \
142- -L$(BUILD ) /esp-idf/esp-idf/esp32s2/ld \
143- -Tesp32s2.project.ld \
144- -Lesp-idf/components/esp32s2/ld \
145- -Tesp32s2.peripherals.ld \
146- -Lesp-idf/components/esp_rom/esp32s2/ld \
147- -Tesp32s2.rom.ld \
148- -Tesp32s2.rom.libgcc.ld \
149- -Tesp32s2.rom.newlib-data.ld \
150- -Tesp32s2.rom.newlib-funcs.ld \
151- -Tesp32s2.rom.spiflash.ld
152- LIBS := -lgcc -lc -lstdc++
142+ LDFLAGS = $(CFLAGS ) -Wl,-nostdlib -Wl,-Map=$@ .map -Wl,-cref -Wl,--undefined=uxTopUsedPriority
153143
154- #
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
157+
158+ LDFLAGS += -Wl,-Bstatic \
159+ -Wl,--no-warn-mismatch \
160+ -Wl,--build-id=none \
161+ -fno-rtti
155162
156- LDFLAGS += -Wl,-Bstatic \
157- -Wl,--no-warn-mismatch \
158- -Wl,--build-id=none \
159- -fno-rtti
163+ LIBS := -lgcc -lc -lstdc++
160164
161165# Use toolchain libm if we're not using our own.
162166ifndef INTERNAL_LIBM
@@ -272,23 +276,19 @@ menuconfig: $(BUILD)/esp-idf/config
272276# qstr builds include headers so we need to make sure they are up to date
273277$(HEADER_BUILD ) /qstr.split : | $(BUILD ) /esp-idf/config/sdkconfig.h
274278
275- ESP_IDF_COMPONENTS_LINK = freertos log esp_system esp_adc_cal esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp-tls
276-
277- ESP_IDF_COMPONENTS_INCLUDE = driver freertos log soc
278-
279- INC += $(foreach component, $(ESP_IDF_COMPONENTS_INCLUDE ) , -isystem esp-idf/components/$(component ) /include)
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
280280
281281ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/$(component ) /lib$(component ) .a)
282282ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/$(component ) /lib$(component ) .a)
283283
284284MBEDTLS_COMPONENTS_LINK = crypto tls x509
285285MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK ) , $(BUILD ) /esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component ) .a)
286286
287- BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libhal .a
287+ BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libxt_hal .a
288288BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a librtc.a libsmartconfig.a libphy.a
289289BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/esp32s2/, $(BINARY_WIFI_BLOBS ) )
290290
291- ESP_IDF_COMPONENTS_EXPANDED += $( BUILD ) / esp-idf/esp-idf/soc/soc/ esp32s2/libsoc_esp32s2 .a
291+ ESP_IDF_COMPONENTS_EXPANDED += esp-idf/components/xtensa/ esp32s2/libxt_hal .a
292292ESP_AUTOGEN_LD = $(BUILD ) /esp-idf/esp-idf/esp32s2/esp32s2_out.ld $(BUILD ) /esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld
293293
294294FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE ) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE )
@@ -301,24 +301,42 @@ all: $(BUILD)/firmware.bin $(BUILD)/firmware.uf2
301301esp-idf-stamp : $(BUILD ) /esp-idf/config/sdkconfig.h
302302 $(Q ) ninja -C $(BUILD ) /esp-idf \
303303 bootloader/bootloader.bin \
304+ esp-idf/app_update/libapp_update.a \
304305 esp-idf/bootloader_support/libbootloader_support.a \
305- esp-idf/esp-tls/libesp-tls.a \
306+ esp-idf/driver/libdriver.a \
307+ esp-idf/efuse/libefuse.a \
308+ esp-idf/esp32s2/libesp32s2.a \
306309 esp-idf/esp32s2/ld/esp32s2.project.ld \
310+ esp-idf/esp_adc_cal/libesp_adc_cal.a \
311+ esp-idf/esp_common/libesp_common.a \
307312 esp-idf/esp_event/libesp_event.a \
313+ esp-idf/esp_hw_support/libesp_hw_support.a \
308314 esp-idf/esp_netif/libesp_netif.a \
315+ esp-idf/esp_pm/libesp_pm.a \
316+ esp-idf/esp_ringbuf/libesp_ringbuf.a \
317+ esp-idf/esp_rom/libesp_rom.a \
309318 esp-idf/esp_system/libesp_system.a \
319+ esp-idf/esp_timer/libesp_timer.a \
320+ esp-idf/esp-tls/libesp-tls.a \
310321 esp-idf/esp_wifi/libesp_wifi.a \
322+ esp-idf/freertos/libfreertos.a \
323+ esp-idf/hal/libhal.a \
324+ esp-idf/heap/libheap.a \
325+ esp-idf/log/liblog.a \
311326 esp-idf/lwip/liblwip.a \
327+ esp-idf/mbedtls/libmbedtls.a \
328+ esp-idf/newlib/libnewlib.a \
312329 esp-idf/nvs_flash/libnvs_flash.a \
330+ esp-idf/pthread/libpthread.a \
331+ esp-idf/soc/libsoc.a \
332+ esp-idf/spi_flash/libspi_flash.a \
333+ esp-idf/vfs/libvfs.a \
313334 esp-idf/wpa_supplicant/libwpa_supplicant.a \
314- esp-idf/mbedtls/libmbedtls.a \
315- esp-idf/freertos/libfreertos.a \
316- esp-idf/log/liblog.a \
317335 esp-idf/xtensa/libxtensa.a
318336
319337$(BUILD ) /firmware.elf : $(OBJ ) | esp-idf-stamp
320338 $(STEPECHO ) " LINK $@ "
321- $(Q )$(CC ) -o $@ $(LDFLAGS ) $^ -Wl,--start-group $(ESP_IDF_COMPONENTS_EXPANDED ) $(BINARY_BLOBS ) $(MBEDTLS_COMPONENTS_LINK_EXPANDED ) build- $( BOARD ) /esp-idf/esp-idf/newlib/libnewlib.a -Wl,--end-group -u newlib_include_pthread_impl -Wl,--start-group $(LIBS ) -Wl,--end-group build- $( BOARD ) /esp-idf/esp-idf/pthread/libpthread.a -u __cxx_fatal_exception
339+ $(Q )$(CC ) -o $@ $(LDFLAGS ) $^ -Wl,--start-group $(ESP_IDF_COMPONENTS_EXPANDED ) $(BINARY_BLOBS ) $(MBEDTLS_COMPONENTS_LINK_EXPANDED ) $( BUILD ) /esp-idf/esp-idf/newlib/libnewlib.a -Wl,--end-group -u newlib_include_pthread_impl -Wl,--start-group $(LIBS ) -Wl,--end-group $( BUILD ) /esp-idf/esp-idf/pthread/libpthread.a -u __cxx_fatal_exception
322340
323341$(BUILD ) /circuitpython-firmware.bin : $(BUILD ) /firmware.elf | tools/build_memory_info.py
324342 $(STEPECHO ) " Create $@ "
0 commit comments