UF2_FAMILY_ID = 0x68ed2b88 include $(TOP)/$(BOARD_PATH)/board.mk # SAM_FAMILY should be set by board.mk (samd21, saml21, or saml22) ifeq ($(SAM_FAMILY),) # Default to samd21 if not specified for backward compatibility SAM_FAMILY = samd21 endif SDK_DIR = hw/mcu/microchip/$(SAM_FAMILY) CPU_CORE ?= cortex-m0plus # Common CFLAGS CFLAGS += \ -flto \ # Family-specific CFLAGS ifeq ($(SAM_FAMILY),samd21) CFLAGS += \ -DCONF_DFLL_OVERWRITE_CALIBRATION=0 \ -DCFG_TUSB_MCU=OPT_MCU_SAMD21 else # SAML21/SAML22 CFLAGS += \ -DCONF_OSC32K_CALIB_ENABLE=0 \ -DCFG_EXAMPLE_VIDEO_READONLY \ ifeq ($(SAM_FAMILY),saml21) CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAML21 else ifeq ($(SAM_FAMILY),saml22) CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAML22 endif endif # suppress warning caused by vendor mcu driver CFLAGS += -Wno-error=redundant-decls # SAM driver is flooded with -Wcast-qual which slow down complication significantly CFLAGS_SKIP += -Wcast-qual LDFLAGS += \ -nostdlib -nostartfiles \ --specs=nosys.specs --specs=nano.specs \ LDFLAGS_CLANG += # Common source files SRC_C += \ src/portable/microchip/samd/dcd_samd.c \ ${SDK_DIR}/gcc/gcc/startup_$(SAM_FAMILY).c \ ${SDK_DIR}/gcc/system_$(SAM_FAMILY).c \ ${SDK_DIR}/hal/src/hal_atomic.c \ ${SDK_DIR}/hpl/gclk/hpl_gclk.c \ # Family-specific source files ifeq ($(SAM_FAMILY),samd21) SRC_C += \ src/portable/microchip/samd/hcd_samd.c \ ${SDK_DIR}/hpl/pm/hpl_pm.c \ ${SDK_DIR}/hpl/sysctrl/hpl_sysctrl.c \ else # SAML21/SAML22 SRC_C += \ ${SDK_DIR}/hpl/mclk/hpl_mclk.c \ ${SDK_DIR}/hpl/osc32kctrl/hpl_osc32kctrl.c \ ${SDK_DIR}/hpl/oscctrl/hpl_oscctrl.c \ ${SDK_DIR}/hpl/pm/hpl_pm.c \ endif INC += \ $(TOP)/$(BOARD_PATH) \ $(TOP)/${SDK_DIR} \ $(TOP)/${SDK_DIR}/config \ $(TOP)/${SDK_DIR}/include \ $(TOP)/${SDK_DIR}/hal/include \ $(TOP)/${SDK_DIR}/hal/utils/include \ $(TOP)/${SDK_DIR}/hpl/pm/ \ $(TOP)/${SDK_DIR}/hpl/port \ $(TOP)/${SDK_DIR}/hri \ $(TOP)/lib/CMSIS_5/CMSIS/Core/Include \ # flash using bossac at least version 1.8 # can be found in arduino15/packages/arduino/tools/bossac/ # Add it to your PATH or change BOSSAC variable to match your installation BOSSAC = bossac flash-bossac: $(BUILD)/$(PROJECT).bin @:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0) $(BOSSAC) --port=$(SERIAL) -U -i --offset=0x2000 -e -w $^ -R