|
|
@@ -175,80 +175,82 @@ endif
|
|
|
|
|
|
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash
|
|
|
EEPROM_DRIVER ?= vendor
|
|
|
-ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
|
|
|
+ifneq ($(strip $(EEPROM_DRIVER)),none)
|
|
|
+ ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
|
|
|
$(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
|
|
|
-else
|
|
|
- OPT_DEFS += -DEEPROM_ENABLE
|
|
|
- COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
|
|
|
- COMMON_VPATH += $(DRIVER_PATH)/eeprom
|
|
|
- COMMON_VPATH += $(PLATFORM_COMMON_DIR)
|
|
|
- ifeq ($(strip $(EEPROM_DRIVER)), custom)
|
|
|
- # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
|
|
|
- SRC += eeprom_driver.c
|
|
|
- else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
|
|
|
- # Wear-leveling EEPROM implementation
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
|
|
- SRC += eeprom_driver.c eeprom_wear_leveling.c
|
|
|
- else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
|
|
|
- # External I2C EEPROM implementation
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
|
|
|
- I2C_DRIVER_REQUIRED = yes
|
|
|
- SRC += eeprom_driver.c eeprom_i2c.c
|
|
|
- else ifeq ($(strip $(EEPROM_DRIVER)), spi)
|
|
|
- # External SPI EEPROM implementation
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
|
|
|
- SPI_DRIVER_REQUIRED = yes
|
|
|
- SRC += eeprom_driver.c eeprom_spi.c
|
|
|
- else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
|
|
|
- # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
|
|
|
- COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
|
|
|
- COMMON_VPATH += $(DRIVER_PATH)/flash
|
|
|
- SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.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
|
|
|
- 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 %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
|
|
|
- # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
|
|
|
- COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
|
|
|
- COMMON_VPATH += $(DRIVER_PATH)/flash
|
|
|
- SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
|
|
|
- else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),)
|
|
|
- # Wear-leveling EEPROM implementation, backed by MCU flash
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
|
|
- SRC += eeprom_driver.c eeprom_wear_leveling.c
|
|
|
- WEAR_LEVELING_DRIVER ?= embedded_flash
|
|
|
- else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
|
|
|
- # True EEPROM on STM32L0xx, L1xx
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
|
|
|
- SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
|
|
|
- else ifneq ($(filter $(MCU_SERIES),RP2040),)
|
|
|
- # Wear-leveling EEPROM implementation, backed by RP2040 flash
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
|
|
- SRC += eeprom_driver.c eeprom_wear_leveling.c
|
|
|
- WEAR_LEVELING_DRIVER ?= rp2040_flash
|
|
|
- else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
|
|
|
- # Teensy EEPROM implementations
|
|
|
- OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
|
|
|
- SRC += eeprom_kinetis_flexram.c
|
|
|
- else
|
|
|
- # Fall back to transient, i.e. non-persistent
|
|
|
- OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
|
|
|
- SRC += eeprom_driver.c eeprom_transient.c
|
|
|
+ else
|
|
|
+ OPT_DEFS += -DEEPROM_ENABLE
|
|
|
+ COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
|
|
|
+ COMMON_VPATH += $(DRIVER_PATH)/eeprom
|
|
|
+ COMMON_VPATH += $(PLATFORM_COMMON_DIR)
|
|
|
+ ifeq ($(strip $(EEPROM_DRIVER)), custom)
|
|
|
+ # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
|
|
|
+ SRC += eeprom_driver.c
|
|
|
+ else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
|
|
|
+ # Wear-leveling EEPROM implementation
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
|
|
+ SRC += eeprom_driver.c eeprom_wear_leveling.c
|
|
|
+ else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
|
|
|
+ # External I2C EEPROM implementation
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
|
|
|
+ I2C_DRIVER_REQUIRED = yes
|
|
|
+ SRC += eeprom_driver.c eeprom_i2c.c
|
|
|
+ else ifeq ($(strip $(EEPROM_DRIVER)), spi)
|
|
|
+ # External SPI EEPROM implementation
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
|
|
|
+ SPI_DRIVER_REQUIRED = yes
|
|
|
+ SRC += eeprom_driver.c eeprom_spi.c
|
|
|
+ else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
|
|
|
+ # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
|
|
|
+ COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
|
|
|
+ COMMON_VPATH += $(DRIVER_PATH)/flash
|
|
|
+ SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.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
|
|
|
+ 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 %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
|
|
|
+ # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
|
|
|
+ COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
|
|
|
+ COMMON_VPATH += $(DRIVER_PATH)/flash
|
|
|
+ SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
|
|
|
+ else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),)
|
|
|
+ # Wear-leveling EEPROM implementation, backed by MCU flash
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
|
|
+ SRC += eeprom_driver.c eeprom_wear_leveling.c
|
|
|
+ WEAR_LEVELING_DRIVER ?= embedded_flash
|
|
|
+ else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
|
|
|
+ # True EEPROM on STM32L0xx, L1xx
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
|
|
|
+ SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
|
|
|
+ else ifneq ($(filter $(MCU_SERIES),RP2040),)
|
|
|
+ # Wear-leveling EEPROM implementation, backed by RP2040 flash
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
|
|
+ SRC += eeprom_driver.c eeprom_wear_leveling.c
|
|
|
+ WEAR_LEVELING_DRIVER ?= rp2040_flash
|
|
|
+ else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
|
|
|
+ # Teensy EEPROM implementations
|
|
|
+ OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
|
|
|
+ SRC += eeprom_kinetis_flexram.c
|
|
|
+ else
|
|
|
+ # Fall back to transient, i.e. non-persistent
|
|
|
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
|
|
|
+ SRC += eeprom_driver.c eeprom_transient.c
|
|
|
+ endif
|
|
|
+ else ifeq ($(PLATFORM),TEST)
|
|
|
+ # Test harness "EEPROM"
|
|
|
+ OPT_DEFS += -DEEPROM_TEST_HARNESS
|
|
|
+ SRC += eeprom.c
|
|
|
endif
|
|
|
- else ifeq ($(PLATFORM),TEST)
|
|
|
- # Test harness "EEPROM"
|
|
|
- OPT_DEFS += -DEEPROM_TEST_HARNESS
|
|
|
- SRC += eeprom.c
|
|
|
endif
|
|
|
endif
|
|
|
endif
|
|
|
@@ -910,12 +912,11 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
|
|
|
OPT_DEFS += -DBLUETOOTH_ENABLE
|
|
|
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
|
|
|
NO_USB_STARTUP_CHECK := yes
|
|
|
+ CONNECTION_ENABLE := yes
|
|
|
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
|
|
|
- SRC += outputselect.c process_connection.c
|
|
|
|
|
|
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
|
|
|
SPI_DRIVER_REQUIRED = yes
|
|
|
- ANALOG_DRIVER_REQUIRED = yes
|
|
|
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
|
|
|
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
|
|
|
endif
|