@@ -228,9 +228,17 @@ IDF_PATH = $(realpath ./esp-idf)
228228$(BUILD ) /esp-idf :
229229 $(Q )$(MKDIR ) -p $@
230230
231+ FLASH_SDKCONFIG = esp-idf-config/sdkconfig-$(CIRCUITPY_ESP_FLASH_SIZE ) .defaults
232+ ifeq ($(DEBUG ) , 1)
233+ DEBUG_SDKCONFIG = esp-idf-config/sdkconfig-debug.defaults
234+ else
235+ DEBUG_SDKCONFIG = esp-idf-config/sdkconfig-opt.defaults
236+ endif
237+ SDKCONFIGS = esp-idf-config/sdkconfig.defaults;$(DEBUG_SDKCONFIG ) ;$(FLASH_SDKCONFIG ) ;boards/$(BOARD ) /sdkconfig
238+
231239# create the config headers
232240$(BUILD ) /esp-idf/config/sdkconfig.h : boards/$(BOARD ) /sdkconfig | $(BUILD ) /esp-idf
233- IDF_PATH=$(IDF_PATH ) cmake -S . -B $(BUILD ) /esp-idf -DSDKCONFIG=$(BUILD ) /esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS=" sdkconfig.defaults;sdkconfig- $( CIRCUITPY_ESP_FLASH_SIZE ) .defaults;boards/ $( BOARD ) /sdkconfig " -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH ) /tools/cmake/toolchain-esp32s2.cmake -DIDF_TARGET=esp32s2 -GNinja
241+ 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
234242
235243# build a lib
236244# Adding -d explain -j 1 -v to the ninja line will output debug info
@@ -247,10 +255,12 @@ $(BUILD)/esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld: $(BUILD)/esp-idf/config/
247255$(BUILD ) /esp-idf/partition_table/partition-table.bin : $(BUILD ) /esp-idf/config/sdkconfig.h
248256 IDF_PATH=$(IDF_PATH ) ninja -C $(BUILD ) /esp-idf partition_table/partition-table.bin
249257
250- # run menuconfig
258+ # run menuconfig and then remove standard settings
251259menuconfig : $(BUILD ) /esp-idf/config
252260 $(Q ) ninja -C $(BUILD ) /esp-idf menuconfig
253- $(Q ) diff --old-line-format= --unchanged-line-format= sdkconfig.defaults $(BUILD ) /esp-idf/sdkconfig > boards/$(BOARD ) /sdkconfig || true
261+ $(Q ) diff --old-line-format= --unchanged-line-format= esp-idf-config/sdkconfig.defaults $(BUILD ) /esp-idf/sdkconfig > $(BUILD ) /sdkconfig.diff || true
262+ $(Q ) grep -Fvxf $(FLASH_SDKCONFIG ) $(BUILD ) /sdkconfig.diff > $(BUILD ) /sdkconfig.stripped1
263+ $(Q ) grep -Fvxf $(DEBUG_SDKCONFIG ) $(BUILD ) /sdkconfig.stripped1 > boards/$(BOARD ) /sdkconfig
254264
255265# qstr builds include headers so we need to make sure they are up to date
256266$(HEADER_BUILD ) /qstr.i.last : | $(BUILD ) /esp-idf/config/sdkconfig.h
@@ -307,8 +317,6 @@ $(BUILD)/firmware.elf: $(OBJ) | esp-idf-stamp
307317$(BUILD ) /circuitpython-firmware.bin : $(BUILD ) /firmware.elf
308318 $(STEPECHO ) " Create $@ "
309319 $(Q ) esptool.py --chip esp32s2 elf2image $(FLASH_FLAGS ) --elf-sha256-offset 0xb0 -o $@ $^
310- # $(Q)$(OBJCOPY) -O binary $^ $@
311- # $(Q)$(OBJCOPY) -O binary -j .vectors -j .text -j .data $^ $@
312320
313321$(BUILD ) /firmware.bin : $(BUILD ) /circuitpython-firmware.bin | esp-idf-stamp
314322 $(Q )$(PYTHON ) ../../tools/join_bins.py $@ 0x1000 $(BUILD ) /esp-idf/bootloader/bootloader.bin 0x8000 $(BUILD ) /esp-idf/partition_table/partition-table.bin 0x10000 $(BUILD ) /circuitpython-firmware.bin
0 commit comments