|
|
@ -158,47 +158,61 @@ ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) |
|
|
|
else |
|
|
|
OPT_DEFS += -DEEPROM_ENABLE |
|
|
|
ifeq ($(strip $(EEPROM_DRIVER)), custom) |
|
|
|
# Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
SRC += eeprom_driver.c |
|
|
|
else ifeq ($(strip $(EEPROM_DRIVER)), i2c) |
|
|
|
# External I2C EEPROM implementation |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
QUANTUM_LIB_SRC += i2c_master.c |
|
|
|
SRC += eeprom_driver.c eeprom_i2c.c |
|
|
|
else ifeq ($(strip $(EEPROM_DRIVER)), spi) |
|
|
|
# External SPI EEPROM implementation |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
QUANTUM_LIB_SRC += spi_master.c |
|
|
|
SRC += eeprom_driver.c eeprom_spi.c |
|
|
|
else ifeq ($(strip $(EEPROM_DRIVER)), transient) |
|
|
|
# Transient EEPROM implementation -- no data storage but provides runtime area for it |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
SRC += eeprom_driver.c eeprom_transient.c |
|
|
|
else ifeq ($(strip $(EEPROM_DRIVER)), vendor) |
|
|
|
# Vendor-implemented EEPROM |
|
|
|
OPT_DEFS += -DEEPROM_VENDOR |
|
|
|
ifeq ($(PLATFORM),AVR) |
|
|
|
# Automatically provided by avr-libc, nothing required |
|
|
|
else ifeq ($(PLATFORM),CHIBIOS) |
|
|
|
ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) |
|
|
|
# Emulated EEPROM |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
SRC += eeprom_driver.c |
|
|
|
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c |
|
|
|
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c |
|
|
|
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) |
|
|
|
# True EEPROM on STM32L0xx, L1xx |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom |
|
|
|
SRC += eeprom_driver.c |
|
|
|
SRC += eeprom_stm32_L0_L1.c |
|
|
|
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) |
|
|
|
# Teensy EEPROM implementations |
|
|
|
SRC += eeprom_teensy.c |
|
|
|
else |
|
|
|
# This will effectively work the same as "transient" if not supported by the chip |
|
|
|
SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c |
|
|
|
# Fall back to transient, i.e. non-persistent |
|
|
|
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT |
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/eeprom |
|
|
|
SRC += eeprom_driver.c eeprom_transient.c |
|
|
|
endif |
|
|
|
else ifeq ($(PLATFORM),ARM_ATSAM) |
|
|
|
# arm_atsam EEPROM |
|
|
|
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c |
|
|
|
else ifeq ($(PLATFORM),TEST) |
|
|
|
# Test harness "EEPROM" |
|
|
|
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c |
|
|
|
endif |
|
|
|
endif |
|
|
|