2017-09-22 21:05:51 -04:00
|
|
|
SRC_SUPERVISOR = \
|
|
|
|
main.c \
|
|
|
|
supervisor/port.c \
|
|
|
|
supervisor/shared/autoreload.c \
|
2020-05-11 09:37:20 -04:00
|
|
|
supervisor/shared/background_callback.c \
|
2020-01-23 20:03:55 -05:00
|
|
|
supervisor/shared/board.c \
|
2021-04-08 16:33:14 -04:00
|
|
|
supervisor/shared/cpu.c \
|
2018-10-19 21:46:22 -04:00
|
|
|
supervisor/shared/filesystem.c \
|
|
|
|
supervisor/shared/flash.c \
|
2021-04-22 20:55:39 -04:00
|
|
|
supervisor/shared/memory.c \
|
2018-10-19 21:46:22 -04:00
|
|
|
supervisor/shared/micropython.c \
|
2018-07-25 08:06:30 -04:00
|
|
|
supervisor/shared/rgb_led_status.c \
|
2018-12-06 17:24:20 -05:00
|
|
|
supervisor/shared/safe_mode.c \
|
2018-07-31 19:53:54 -04:00
|
|
|
supervisor/shared/stack.c \
|
2018-10-19 21:46:22 -04:00
|
|
|
supervisor/shared/status_leds.c \
|
2019-11-18 09:22:41 -05:00
|
|
|
supervisor/shared/tick.c \
|
2018-07-31 19:53:54 -04:00
|
|
|
supervisor/shared/translate.c
|
2017-09-22 21:05:51 -04:00
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
NO_USB ?= $(wildcard supervisor/usb.c)
|
2018-10-19 21:46:22 -04:00
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
INTERNAL_FLASH_FILESYSTEM ?= 0
|
2019-12-05 22:45:53 -05:00
|
|
|
CFLAGS += -DINTERNAL_FLASH_FILESYSTEM=$(INTERNAL_FLASH_FILESYSTEM)
|
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
QSPI_FLASH_FILESYSTEM ?= 0
|
2019-12-10 17:57:17 -05:00
|
|
|
CFLAGS += -DQSPI_FLASH_FILESYSTEM=$(QSPI_FLASH_FILESYSTEM)
|
2018-10-19 21:46:22 -04:00
|
|
|
|
2021-02-11 18:50:02 -05:00
|
|
|
SPI_FLASH_FILESYSTEM ?= 0
|
2019-12-10 17:57:17 -05:00
|
|
|
CFLAGS += -DSPI_FLASH_FILESYSTEM=$(SPI_FLASH_FILESYSTEM)
|
2019-09-14 15:40:24 -04:00
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_BLEIO),1)
|
2020-06-25 20:57:17 -04:00
|
|
|
SRC_SUPERVISOR += supervisor/shared/bluetooth.c supervisor/bluetooth.c
|
2019-02-18 22:44:31 -05:00
|
|
|
endif
|
2018-10-19 21:46:22 -04:00
|
|
|
|
|
|
|
# Choose which flash filesystem impl to use.
|
2019-12-05 22:45:53 -05:00
|
|
|
# (Right now INTERNAL_FLASH_FILESYSTEM and (Q)SPI_FLASH_FILESYSTEM are mutually exclusive.
|
2018-10-19 21:46:22 -04:00
|
|
|
# But that might not be true in the future.)
|
2021-03-04 16:12:24 -05:00
|
|
|
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
|
|
|
|
ifeq ($(DISABLE_FILESYSTEM),1)
|
|
|
|
SRC_SUPERVISOR += supervisor/stub/internal_flash.c
|
|
|
|
else
|
|
|
|
SRC_SUPERVISOR += supervisor/internal_flash.c
|
|
|
|
endif
|
|
|
|
else
|
2021-02-12 19:01:14 -05:00
|
|
|
CFLAGS += -DEXTERNAL_FLASH_DEVICES=$(EXTERNAL_FLASH_DEVICES) \
|
|
|
|
|
|
|
|
SRC_SUPERVISOR += supervisor/shared/external_flash/external_flash.c
|
2021-03-24 20:10:54 -04:00
|
|
|
ifeq ($(SPI_FLASH_FILESYSTEM),1)
|
|
|
|
SRC_SUPERVISOR += supervisor/shared/external_flash/spi_flash.c
|
|
|
|
endif
|
|
|
|
ifeq ($(QSPI_FLASH_FILESYSTEM),1)
|
|
|
|
SRC_SUPERVISOR += supervisor/qspi_flash.c supervisor/shared/external_flash/qspi_flash.c
|
|
|
|
endif
|
|
|
|
|
|
|
|
$(HEADER_BUILD)/devices.h : ../../supervisor/shared/external_flash/devices.h.jinja ../../tools/gen_nvm_devices.py | $(HEADER_BUILD)
|
|
|
|
$(STEPECHO) "GEN $@"
|
|
|
|
$(Q)install -d $(BUILD)/genhdr
|
|
|
|
$(Q)$(PYTHON3) ../../tools/gen_nvm_devices.py $< $@
|
|
|
|
|
|
|
|
$(BUILD)/supervisor/shared/external_flash/external_flash.o: $(HEADER_BUILD)/devices.h
|
|
|
|
|
2017-09-22 21:05:51 -04:00
|
|
|
endif
|
|
|
|
|
2021-04-16 10:59:11 -04:00
|
|
|
ifeq ($(CIRCUITPY_USB),0)
|
2021-02-12 19:01:14 -05:00
|
|
|
ifeq ($(wildcard supervisor/serial.c),)
|
|
|
|
SRC_SUPERVISOR += supervisor/stub/serial.c
|
|
|
|
else
|
|
|
|
SRC_SUPERVISOR += supervisor/serial.c
|
|
|
|
endif
|
2017-09-22 21:05:51 -04:00
|
|
|
else
|
2021-02-12 19:01:14 -05:00
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
lib/tinyusb/src/class/cdc/cdc_device.c \
|
|
|
|
lib/tinyusb/src/common/tusb_fifo.c \
|
|
|
|
lib/tinyusb/src/device/usbd.c \
|
|
|
|
lib/tinyusb/src/device/usbd_control.c \
|
|
|
|
lib/tinyusb/src/tusb.c \
|
|
|
|
supervisor/shared/serial.c \
|
|
|
|
supervisor/shared/workflow.c \
|
|
|
|
supervisor/usb.c \
|
|
|
|
supervisor/shared/usb/usb_desc.c \
|
|
|
|
supervisor/shared/usb/usb.c \
|
|
|
|
$(BUILD)/autogen_usb_descriptor.c \
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_USB_CDC), 1)
|
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
shared-bindings/usb_cdc/__init__.c \
|
|
|
|
shared-bindings/usb_cdc/Serial.c \
|
|
|
|
shared-module/usb_cdc/__init__.c \
|
|
|
|
shared-module/usb_cdc/Serial.c \
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_USB_HID), 1)
|
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
lib/tinyusb/src/class/hid/hid_device.c \
|
|
|
|
shared-bindings/usb_hid/__init__.c \
|
|
|
|
shared-bindings/usb_hid/Device.c \
|
|
|
|
shared-module/usb_hid/__init__.c \
|
|
|
|
shared-module/usb_hid/Device.c \
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_USB_MIDI), 1)
|
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
lib/tinyusb/src/class/midi/midi_device.c \
|
|
|
|
shared-bindings/usb_midi/__init__.c \
|
|
|
|
shared-bindings/usb_midi/PortIn.c \
|
|
|
|
shared-bindings/usb_midi/PortOut.c \
|
|
|
|
shared-module/usb_midi/__init__.c \
|
|
|
|
shared-module/usb_midi/PortIn.c \
|
|
|
|
shared-module/usb_midi/PortOut.c \
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_USB_MSC), 1)
|
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
lib/tinyusb/src/class/msc/msc_device.c \
|
|
|
|
supervisor/shared/usb/usb_msc_flash.c \
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_USB_VENDOR), 1)
|
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
lib/tinyusb/src/class/vendor/vendor_device.c \
|
|
|
|
|
|
|
|
endif
|
2017-09-22 21:05:51 -04:00
|
|
|
endif
|
|
|
|
|
2020-04-17 19:23:28 -04:00
|
|
|
SUPERVISOR_O = $(addprefix $(BUILD)/, $(SRC_SUPERVISOR:.c=.o))
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_DISPLAYIO), 1)
|
2021-02-12 19:01:14 -05:00
|
|
|
SRC_SUPERVISOR += \
|
|
|
|
supervisor/shared/display.c
|
2020-04-17 19:23:28 -04:00
|
|
|
|
2021-02-12 19:01:14 -05:00
|
|
|
ifeq ($(CIRCUITPY_TERMINALIO), 1)
|
|
|
|
SUPERVISOR_O += $(BUILD)/autogen_display_resources.o
|
|
|
|
endif
|
2020-04-17 19:23:28 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
|
|
|
|
USB_INTERFACE_NAME ?= "CircuitPython"
|
|
|
|
|
|
|
|
ifneq ($(USB_VID),)
|
|
|
|
CFLAGS += -DUSB_VID=$(USB_VID)
|
|
|
|
CFLAGS += -DSUB_PID=$(USB_PID)
|
|
|
|
CFLAGS += -DUSB_MANUFACTURER=$(USB_MANUFACTURER)
|
|
|
|
CFLAGS += -DUSB_PRODUCT=$(USB_PRODUCT)
|
2019-11-12 16:29:35 -05:00
|
|
|
endif
|
|
|
|
|
2021-02-04 17:31:18 -05:00
|
|
|
# In the following URL, don't include the https:// prefix.
|
|
|
|
# It gets added automatically.
|
2021-02-11 18:50:02 -05:00
|
|
|
USB_WEBUSB_URL ?= "circuitpython.org"
|
2021-01-25 21:37:58 -05:00
|
|
|
|
2021-02-12 19:01:14 -05:00
|
|
|
ifeq ($(CIRCUITPY_REPL_USB),1)
|
|
|
|
USB_DEVICES += CDC
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CIRCUITPY_USB_HID),1)
|
|
|
|
USB_DEVICES += HID
|
|
|
|
endif
|
2020-06-15 15:52:35 -04:00
|
|
|
ifeq ($(CIRCUITPY_USB_MIDI),1)
|
2021-02-04 19:23:40 -05:00
|
|
|
USB_DEVICES += AUDIO
|
2020-06-15 15:52:35 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_MSC),1)
|
|
|
|
USB_DEVICES += MSC
|
2020-06-15 15:52:35 -04:00
|
|
|
endif
|
2021-02-12 19:01:14 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_CDC),1)
|
2021-02-04 19:23:40 -05:00
|
|
|
# Inform TinyUSB there are two CDC devices.
|
|
|
|
CFLAGS += -DCFG_TUD_CDC=2
|
|
|
|
USB_DEVICES += CDC2
|
2019-10-04 07:49:33 -04:00
|
|
|
endif
|
2021-02-11 18:50:02 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_VENDOR),1)
|
|
|
|
USB_DEVICES += VENDOR
|
2019-10-04 07:49:33 -04:00
|
|
|
endif
|
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
USB_HID_DEVICES =
|
|
|
|
ifeq ($(CIRCUITPY_USB_HID_CONSUMER),1)
|
|
|
|
USB_HID_DEVICES += CONSUMER
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_HID_DIGITIZER),1)
|
|
|
|
USB_HID_DEVICES += DIGITIZER
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_HID_GAMEPAD),1)
|
|
|
|
USB_HID_DEVICES += GAMEPAD
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_HID_KEYBOARD),1)
|
|
|
|
USB_HID_DEVICES += KEYBOARD
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_HID_MOUSE),1)
|
|
|
|
USB_HID_DEVICES += MOUSE
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_HID_SYS_CONTROL),1)
|
|
|
|
USB_HID_DEVICES += SYS_CONTROL
|
2019-10-07 07:40:44 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_HID_XAC_COMPATIBLE_GAMEPAD),1)
|
|
|
|
USB_HID_DEVICES += XAC_COMPATIBLE_GAMEPAD
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
# RAW is not compatible with other HID devices.
|
|
|
|
ifeq ($(CIRCUITPY_USB_HID_RAW),1)
|
|
|
|
ifneq ($(CIRCUITPY_USB_HID_DEVICES,)
|
|
|
|
$(error HID RAW must not be combined with other HID devices)
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
2021-02-04 19:23:40 -05:00
|
|
|
USB_HID_DEVICES += MOUSE
|
2019-10-01 04:00:32 -04:00
|
|
|
endif
|
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
USB_HIGHSPEED ?= 0
|
2019-09-04 21:45:16 -04:00
|
|
|
|
2021-02-04 19:23:40 -05:00
|
|
|
USB_CDC_EP_NUM_NOTIFICATION ?= 0
|
|
|
|
USB_CDC_EP_NUM_DATA_OUT ?= 0
|
|
|
|
USB_CDC_EP_NUM_DATA_IN ?= 0
|
|
|
|
USB_MSC_EP_NUM_OUT ?= 0
|
|
|
|
USB_MSC_EP_NUM_IN ?= 0
|
|
|
|
USB_HID_EP_NUM_OUT ?= 0
|
|
|
|
USB_HID_EP_NUM_IN ?= 0
|
|
|
|
USB_MIDI_EP_NUM_OUT ?= 0
|
|
|
|
USB_MIDI_EP_NUM_IN ?= 0
|
|
|
|
USB_NUM_EP ?= 0
|
2020-08-19 17:47:20 -04:00
|
|
|
|
2019-10-08 03:26:02 -04:00
|
|
|
USB_DESCRIPTOR_ARGS = \
|
|
|
|
--manufacturer $(USB_MANUFACTURER)\
|
|
|
|
--product $(USB_PRODUCT)\
|
|
|
|
--vid $(USB_VID)\
|
|
|
|
--pid $(USB_PID)\
|
|
|
|
--serial_number_length $(USB_SERIAL_NUMBER_LENGTH)\
|
2019-11-12 16:29:35 -05:00
|
|
|
--interface_name $(USB_INTERFACE_NAME)\
|
2021-02-04 19:23:40 -05:00
|
|
|
--devices "$(USB_DEVICES)"\
|
|
|
|
--hid_devices "$(USB_HID_DEVICES)"\
|
2020-08-19 17:47:20 -04:00
|
|
|
--max_ep $(USB_NUM_EP) \
|
2019-10-08 03:26:02 -04:00
|
|
|
--cdc_ep_num_notification $(USB_CDC_EP_NUM_NOTIFICATION)\
|
|
|
|
--cdc_ep_num_data_out $(USB_CDC_EP_NUM_DATA_OUT)\
|
|
|
|
--cdc_ep_num_data_in $(USB_CDC_EP_NUM_DATA_IN)\
|
|
|
|
--msc_ep_num_out $(USB_MSC_EP_NUM_OUT)\
|
|
|
|
--msc_ep_num_in $(USB_MSC_EP_NUM_IN)\
|
|
|
|
--hid_ep_num_out $(USB_HID_EP_NUM_OUT)\
|
|
|
|
--hid_ep_num_in $(USB_HID_EP_NUM_IN)\
|
|
|
|
--midi_ep_num_out $(USB_MIDI_EP_NUM_OUT)\
|
|
|
|
--midi_ep_num_in $(USB_MIDI_EP_NUM_IN)\
|
|
|
|
--output_c_file $(BUILD)/autogen_usb_descriptor.c\
|
|
|
|
--output_h_file $(BUILD)/genhdr/autogen_usb_descriptor.h
|
|
|
|
|
2021-01-25 21:37:58 -05:00
|
|
|
ifeq ($(CIRCUITPY_USB_VENDOR), 1)
|
|
|
|
USB_DESCRIPTOR_ARGS += \
|
|
|
|
--vendor_ep_num_out 0 --vendor_ep_num_in 0 \
|
|
|
|
--webusb_url $(USB_WEBUSB_URL)
|
|
|
|
endif
|
|
|
|
|
2019-10-08 03:26:02 -04:00
|
|
|
ifeq ($(USB_RENUMBER_ENDPOINTS), 0)
|
|
|
|
USB_DESCRIPTOR_ARGS += --no-renumber_endpoints
|
2019-09-04 21:45:16 -04:00
|
|
|
endif
|
|
|
|
|
2020-07-29 04:38:55 -04:00
|
|
|
ifeq ($(USB_HIGHSPEED), 1)
|
|
|
|
USB_DESCRIPTOR_ARGS += --highspeed
|
|
|
|
endif
|
|
|
|
|
2018-07-31 19:53:54 -04:00
|
|
|
$(BUILD)/supervisor/shared/translate.o: $(HEADER_BUILD)/qstrdefs.generated.h
|
2018-10-19 21:46:22 -04:00
|
|
|
|
2018-11-09 03:11:43 -05:00
|
|
|
$(BUILD)/autogen_usb_descriptor.c $(BUILD)/genhdr/autogen_usb_descriptor.h: autogen_usb_descriptor.intermediate
|
|
|
|
|
|
|
|
.INTERMEDIATE: autogen_usb_descriptor.intermediate
|
|
|
|
|
|
|
|
autogen_usb_descriptor.intermediate: ../../tools/gen_usb_descriptor.py Makefile | $(HEADER_BUILD)
|
2018-10-19 21:46:22 -04:00
|
|
|
$(STEPECHO) "GEN $@"
|
|
|
|
$(Q)install -d $(BUILD)/genhdr
|
2019-10-08 03:26:02 -04:00
|
|
|
$(Q)$(PYTHON3) ../../tools/gen_usb_descriptor.py $(USB_DESCRIPTOR_ARGS)
|
2019-01-24 20:25:08 -05:00
|
|
|
|
2019-04-12 18:25:48 -04:00
|
|
|
CIRCUITPY_DISPLAY_FONT ?= "../../tools/fonts/ter-u12n.bdf"
|
2019-01-24 20:25:08 -05:00
|
|
|
|
|
|
|
$(BUILD)/autogen_display_resources.c: ../../tools/gen_display_resources.py $(HEADER_BUILD)/qstrdefs.generated.h Makefile | $(HEADER_BUILD)
|
|
|
|
$(STEPECHO) "GEN $@"
|
|
|
|
$(Q)install -d $(BUILD)/genhdr
|
|
|
|
$(Q)$(PYTHON3) ../../tools/gen_display_resources.py \
|
|
|
|
--font $(CIRCUITPY_DISPLAY_FONT) \
|
2019-01-29 20:10:17 -05:00
|
|
|
--sample_file $(HEADER_BUILD)/qstrdefs.generated.h \
|
2019-01-24 20:25:08 -05:00
|
|
|
--output_c_file $(BUILD)/autogen_display_resources.c
|