93
93
# MCU Series is defined by the HAL package and doesn't need to be specified here
94
94
C_DEFS = -D$(MCU_PACKAGE ) -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER -D$(MCU_VARIANT )
95
95
96
- CFLAGS += $(INC ) -Werror -Wall -std=gnu11 $(BASE_CFLAGS ) $(C_DEFS ) $(CFLAGS_MOD ) $(COPT )
97
- # Removed -nostdlib since it conflicts with stm32 startup files
96
+ CFLAGS += $(INC ) -Werror -Wall -std=gnu11 $(BASE_CFLAGS ) $(C_DEFS ) $(CFLAGS_MOD ) $(COPT ) -nostdlib -nostartfiles
98
97
99
98
# Undo some warnings.
100
99
# STM32 HAL uses undefined preprocessor variables, shadowed variables, casts that change alignment reqs
@@ -264,6 +263,12 @@ SRC_QSTR += $(SRC_C) $(SRC_SUPERVISOR) $(SRC_MOD) $(SRC_COMMON_HAL_EXPANDED) $(S
264
263
# Sources that only hold QSTRs after pre-processing.
265
264
SRC_QSTR_PREPROCESSOR +=
266
265
266
+ # Bin section settings specific to the STM32H7
267
+ ifeq ($(MCU_VARIANT ) ,$(filter $(MCU_VARIANT ) ,STM32H743xx) )
268
+ MCU_SECTIONS = -j .isr_vector -j .text -j .data -j .itcm -j .dtcm_data $^ $@
269
+ else
270
+ MCU_SECTIONS = $^ $@
271
+ endif
267
272
268
273
all : $(BUILD ) /firmware.bin $(BUILD ) /firmware.uf2
269
274
@@ -274,13 +279,11 @@ $(BUILD)/firmware.elf: $(OBJ)
274
279
275
280
$(BUILD ) /firmware.bin : $(BUILD ) /firmware.elf
276
281
$(STEPECHO ) " Create $@ "
277
- $(Q )$(OBJCOPY ) -O binary $^ $@
278
- # $(Q)$(OBJCOPY) -O binary -j .vectors -j .text -j .data $^ $@
282
+ $(Q )$(OBJCOPY ) -O binary $(MCU_SECTIONS )
279
283
280
284
$(BUILD ) /firmware.hex : $(BUILD ) /firmware.elf
281
285
$(STEPECHO ) " Create $@ "
282
- $(Q )$(OBJCOPY ) -O ihex $^ $@
283
- # $(Q)$(OBJCOPY) -O ihex -j .vectors -j .text -j .data $^ $@
286
+ $(Q )$(OBJCOPY ) -O ihex $(MCU_SECTIONS )
284
287
285
288
$(BUILD ) /firmware.uf2 : $(BUILD ) /firmware.hex
286
289
$(ECHO ) " Create $@ "
0 commit comments