summaryrefslogtreecommitdiff
path: root/hw/bsp/samd2x_l2x/family.mk
blob: 2ff01e8b7f597e0119e9d19a281b5fb9562fcee8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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