@@ -86,17 +86,27 @@ INC += -I. \
86
86
# NDEBUG disables assert() statements. This reduces code size pretty dramatically, per tannewt.
87
87
88
88
ifeq ($(CHIP_FAMILY ) , samd21)
89
+ PERIPHERALS_CHIP_FAMILY =samd21
89
90
CFLAGS += -Os -DNDEBUG
90
91
# TinyUSB defines
91
92
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD21 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=128 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=128 -DCFG_TUD_MSC_BUFSIZE=512
92
93
endif
93
94
94
95
ifeq ($(CHIP_FAMILY ) , samd51)
96
+ PERIPHERALS_CHIP_FAMILY =sam_d5x_e5x
95
97
CFLAGS += -Os -DNDEBUG
96
98
# TinyUSB defines
97
99
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD51 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
98
100
endif
99
101
102
+ ifeq ($(CHIP_FAMILY ) , same54)
103
+ PERIPHERALS_CHIP_FAMILY =sam_d5x_e5x
104
+ CFLAGS += -Os -DNDEBUG
105
+ # TinyUSB defines
106
+ CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD51 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
107
+ endif
108
+
109
+ $(echo PERIPHERALS_CHIP_FAMILY=$(PERIPHERALS_CHIP_FAMILY))
100
110
# Debugging/Optimization
101
111
ifeq ($(DEBUG ) , 1)
102
112
CFLAGS += -ggdb
@@ -152,7 +162,16 @@ CFLAGS += \
152
162
-mcpu=cortex-m4 \
153
163
-mfloat-abi=hard \
154
164
-mfpu=fpv4-sp-d16 \
155
- -DSAMD51
165
+ -DSAM_D5X_E5X -DSAMD51
166
+ endif
167
+ ifeq ($(CHIP_FAMILY ) , same54)
168
+ CFLAGS += \
169
+ -mthumb \
170
+ -mabi=aapcs-linux \
171
+ -mcpu=cortex-m4 \
172
+ -mfloat-abi=hard \
173
+ -mfpu=fpv4-sp-d16 \
174
+ -DSAM_D5X_E5X -DSAME54
156
175
endif
157
176
158
177
@@ -171,6 +190,9 @@ BOOTLOADER_SIZE := 0x2000
171
190
else ifeq ($(CHIP_FAMILY), samd51)
172
191
LDFLAGS += -mthumb -mcpu=cortex-m4
173
192
BOOTLOADER_SIZE := 0x4000
193
+ else ifeq ($(CHIP_FAMILY), same54)
194
+ LDFLAGS += -mthumb -mcpu=cortex-m4
195
+ BOOTLOADER_SIZE := 0x4000
174
196
endif
175
197
176
198
SRC_ASF := \
@@ -213,6 +235,15 @@ SRC_ASF += \
213
235
hpl/oscctrl/hpl_oscctrl.c \
214
236
hpl/trng/hpl_trng.c \
215
237
238
+ else ifeq ($(CHIP_FAMILY), same54)
239
+ SRC_ASF += \
240
+ hal/src/hal_rand_sync.c \
241
+ hpl/core/hpl_core_m4.c \
242
+ hpl/mclk/hpl_mclk.c \
243
+ hpl/osc32kctrl/hpl_osc32kctrl.c \
244
+ hpl/oscctrl/hpl_oscctrl.c \
245
+ hpl/trng/hpl_trng.c \
246
+
216
247
endif
217
248
218
249
SRC_ASF := $(addprefix asf4/$(CHIP_FAMILY ) /, $(SRC_ASF ) )
@@ -240,15 +271,15 @@ SRC_C = \
240
271
lib/utils/stdout_helpers.c \
241
272
lib/utils/sys_stdio_mphal.c \
242
273
mphalport.c \
243
- peripherals/samd/$(CHIP_FAMILY ) /adc.c \
244
- peripherals/samd/$(CHIP_FAMILY ) /cache.c \
245
- peripherals/samd/$(CHIP_FAMILY ) /clocks.c \
246
- peripherals/samd/$(CHIP_FAMILY ) /dma.c \
247
- peripherals/samd/$(CHIP_FAMILY ) /events.c \
248
- peripherals/samd/$(CHIP_FAMILY ) /external_interrupts.c \
249
- peripherals/samd/$(CHIP_FAMILY ) /pins.c \
250
- peripherals/samd/$(CHIP_FAMILY ) /sercom.c \
251
- peripherals/samd/$(CHIP_FAMILY ) /timers.c \
274
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /adc.c \
275
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /cache.c \
276
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /clocks.c \
277
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /dma.c \
278
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /events.c \
279
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /external_interrupts.c \
280
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /pins.c \
281
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /sercom.c \
282
+ peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /timers.c \
252
283
peripherals/samd/clocks.c \
253
284
peripherals/samd/dma.c \
254
285
peripherals/samd/events.c \
@@ -288,7 +319,7 @@ endif
288
319
289
320
# The smallest SAMD51 packages don't have I2S. Everything else does.
290
321
ifeq ($(CIRCUITPY_AUDIOBUSIO ) ,1)
291
- SRC_C += peripherals/samd/i2s.c peripherals/samd/$(CHIP_FAMILY ) /i2s.c
322
+ SRC_C += peripherals/samd/i2s.c peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /i2s.c
292
323
endif
293
324
294
325
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL ) ) \
@@ -317,7 +348,7 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
317
348
318
349
SRC_QSTR += $(SRC_C ) $(SRC_SUPERVISOR ) $(SRC_COMMON_HAL_EXPANDED ) $(SRC_SHARED_MODULE_EXPANDED )
319
350
# Sources that only hold QSTRs after pre-processing.
320
- SRC_QSTR_PREPROCESSOR += peripherals/samd/$(CHIP_FAMILY ) /clocks.c
351
+ SRC_QSTR_PREPROCESSOR += peripherals/samd/$(PERIPHERALS_CHIP_FAMILY ) /clocks.c
321
352
322
353
all : $(BUILD ) /firmware.bin $(BUILD ) /firmware.uf2
323
354
0 commit comments