@@ -63,8 +63,6 @@ ifneq ($(SD), )
6363 include bluetooth/bluetooth_common.mk
6464endif
6565
66- FROZEN_MPY_DIR = freeze
67-
6866CROSS_COMPILE = arm-none-eabi-
6967
7068FATFS_DIR = lib/oofatfs
@@ -92,7 +90,7 @@ INC += -I../../supervisor/shared/usb
9290ifeq ($(DEBUG ) , 1)
9391 CFLAGS += -ggdb3 -Og
9492else
95- CFLAGS += -Os -DNDEBUG
93+ CFLAGS += -Os -DNDEBUG -ggdb3
9694 CFLAGS += -flto -flto-partition=none
9795endif
9896
@@ -118,7 +116,7 @@ CFLAGS += \
118116# TODO: check this
119117CFLAGS += -D__START=main
120118
121- LDFLAGS = $(CFLAGS ) -nostartfiles -fshort-enums -Wl,-nostdlib -Wl,-T,$(LD_FILE ) -Wl,-Map=$@ .map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
119+ LDFLAGS = $(CFLAGS ) -nostartfiles -fshort-enums -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE ) -Wl,-Map=$@ .map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
122120LIBS := -lgcc -lc
123121
124122LDFLAGS += -mthumb -mcpu=cortex-m4
@@ -193,15 +191,16 @@ SRC_SHARED_MODULE_EXPANDED = $(addprefix shared-bindings/, $(SRC_SHARED_MODULE))
193191 $(addprefix shared-module/, $(SRC_SHARED_MODULE ) ) \
194192 $(addprefix shared-module/, $(SRC_SHARED_MODULE_INTERNAL ) )
195193
196- SRC_S = supervisor/cpu.s
194+ # There may be duplicates between SRC_COMMON_HAL_EXPANDED and SRC_SHARED_MODULE_EXPANDED,
195+ # because a few modules have files both in common-hal/ and shared-modules/.
196+ # Doing a $(sort ...) removes duplicates as part of sorting.
197+ SRC_COMMON_HAL_SHARED_MODULE_EXPANDED = $(sort $(SRC_COMMON_HAL_EXPANDED ) $(SRC_SHARED_MODULE_EXPANDED ) )
197198
198- FROZEN_MPY_PY_FILES := $(shell find -L $(FROZEN_MPY_DIR ) -type f -name '* .py')
199- FROZEN_MPY_MPY_FILES := $(addprefix $(BUILD ) /,$(FROZEN_MPY_PY_FILES:.py=.mpy ) )
199+ SRC_S = supervisor/cpu.s
200200
201201OBJ += $(PY_O ) $(SUPERVISOR_O ) $(addprefix $(BUILD ) /, $(SRC_C:.c=.o ) )
202202OBJ += $(addprefix $(BUILD ) /, $(SRC_NRFX:.c=.o ) )
203- OBJ += $(addprefix $(BUILD ) /, $(SRC_COMMON_HAL_EXPANDED:.c=.o ) )
204- OBJ += $(addprefix $(BUILD ) /, $(SRC_SHARED_MODULE_EXPANDED:.c=.o ) )
203+ OBJ += $(addprefix $(BUILD ) /, $(SRC_COMMON_HAL_SHARED_MODULE_EXPANDED:.c=.o ) )
205204ifeq ($(INTERNAL_LIBM ) ,1)
206205OBJ += $(addprefix $(BUILD ) /, $(SRC_LIBM:.c=.o ) )
207206endif
@@ -219,19 +218,10 @@ SRC_QSTR_PREPROCESSOR +=
219218
220219all : $(BUILD ) /firmware.bin $(BUILD ) /firmware.uf2
221220
222- LD_FILE = $(BUILD ) /$(notdir $(patsubst % .template.ld,% .ld,$(LD_TEMPLATE_FILE ) ) )
223-
224- # ld_defines.pp is generated from ld_defines.c. See py/mkrules.mk.
225- # Run gen_ld_files.py over ALL *.template.ld files, not just LD_TEMPLATE_FILE,
226- # because it may include other template files.
227- $(LD_FILE ) : $(BUILD ) /ld_defines.pp boards/* .template.ld
228- $(STEPECHO ) " GEN $@ "
229- $(Q )$(PYTHON3 ) $(TOP ) /tools/gen_ld_files.py --defines $< --out_dir $(BUILD ) boards/* .template.ld
230-
231- $(BUILD ) /firmware.elf : $(OBJ )
221+ $(BUILD ) /firmware.elf : $(OBJ ) $(GENERATED_LD_FILE )
232222 $(STEPECHO ) " LINK $@ "
233- $(Q )$(CC ) -o $@ $(LDFLAGS ) $^ -Wl,--start-group $(LIBS ) -Wl,--end-group
234- $(Q )$(SIZE ) $@ | $(PYTHON3 ) $(TOP ) /tools/build_memory_info.py $(LD_FILE )
223+ $(Q )$(CC ) -o $@ $(LDFLAGS ) $( OBJ ) -Wl,--start-group $(LIBS ) -Wl,--end-group
224+ $(Q )$(SIZE ) $@ | $(PYTHON3 ) $(TOP ) /tools/build_memory_info.py $(GENERATED_LD_FILE )
235225
236226$(BUILD ) /firmware.bin : $(BUILD ) /firmware.elf
237227 $(STEPECHO ) " Create $@ "
@@ -273,7 +263,7 @@ else ifeq ($(FLASHER), pyocd)
273263
274264flash : $(BUILD ) /firmware.hex
275265 pyocd-flashtool -t $(MCU_VARIANT ) $< --sector_erase
276- # pyocd-tool -t $(MCU_VARIANT) erase $(BOOT_SETTING_ADDR)
266+ # pyocd-tool -t $(MCU_VARIANT) erase $(BOOT_SETTING_ADDR)
277267 pyocd-tool -t $(MCU_VARIANT) write32 $(BOOT_SETTING_ADDR) 0x00000001
278268 pyocd-tool -t $(MCU_VARIANT) reset
279269
0 commit comments