diff options
| author | Joel Challis <[email protected]> | 2021-10-16 02:58:48 +0100 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-10-16 02:58:48 +0100 | 
| commit | 83e978da1fba4cfbb76dc22e05aa656dba8c1c3e (patch) | |
| tree | 1413d3703ef5bc6000ce176b7464af83c68ab829 | |
| parent | 5c6a8f599fbd4a083548503e88aa7f969a5b753b (diff) | |
| download | qmk_firmware-83e978da1fba4cfbb76dc22e05aa656dba8c1c3e.tar.gz qmk_firmware-83e978da1fba4cfbb76dc22e05aa656dba8c1c3e.zip | |
Further tidy up of STM32 eeprom emulation (#14591)
| -rw-r--r-- | common_features.mk | 39 | ||||
| -rw-r--r-- | quantum/mcu_selection.mk | 5 | ||||
| -rw-r--r-- | tmk_core/common/chibios/flash_stm32.c | 4 | 
3 files changed, 10 insertions, 38 deletions
| diff --git a/common_features.mk b/common_features.mk index 3fe834219f..6a9754e58e 100644 --- a/common_features.mk +++ b/common_features.mk @@ -153,51 +153,18 @@ else      ifeq ($(PLATFORM),AVR)        # Automatically provided by avr-libc, nothing required      else ifeq ($(PLATFORM),CHIBIOS) -      ifeq ($(MCU_SERIES), STM32F3xx) +      ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)          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 -        OPT_DEFS += -DEEPROM_EMU_STM32F303xC -      else ifeq ($(MCU_SERIES), STM32F1xx) -        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 -        OPT_DEFS += -DEEPROM_EMU_STM32F103xB -      else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB) -        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 -        OPT_DEFS += -DEEPROM_EMU_STM32F072xB -      else ifneq ($(filter $(MCU_SERIES)_$(MCU_LDSCRIPT),STM32F4xx_STM32F401xC STM32F4xx_STM32F401xE STM32F4xx_STM32F411xE STM32F4xx_STM32F405xG),) -        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 -        OPT_DEFS += -DEEPROM_EMU_STM32F401xC -      else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F042x6) -        # Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced. -        # This ensures that the EEPROM page buffer fits into RAM -        USE_PROCESS_STACKSIZE = 0x600 -        USE_EXCEPTIONS_STACKSIZE = 0x300 - -        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 -        OPT_DEFS += -DEEPROM_EMU_STM32F042x6        else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)          OPT_DEFS += -DEEPROM_DRIVER          COMMON_VPATH += $(DRIVER_PATH)/eeprom          COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom -        SRC += eeprom_driver.c eeprom_stm32_L0_L1.c +        SRC += eeprom_driver.c +        SRC += eeprom_stm32_L0_L1.c        else          # This will effectively work the same as "transient" if not supported by the chip          SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index 92e3a7c923..622b4a82f8 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk @@ -138,6 +138,11 @@ ifneq ($(findstring STM32F042, $(MCU)),)    # UF2 settings    UF2_FAMILY ?= STM32F0 + +  # Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced. +  # This ensures that the EEPROM page buffer fits into RAM +  USE_PROCESS_STACKSIZE = 0x600 +  USE_EXCEPTIONS_STACKSIZE = 0x300  endif  ifneq ($(findstring STM32F072, $(MCU)),) diff --git a/tmk_core/common/chibios/flash_stm32.c b/tmk_core/common/chibios/flash_stm32.c index 8f10903d3d..35fb0eebdb 100644 --- a/tmk_core/common/chibios/flash_stm32.c +++ b/tmk_core/common/chibios/flash_stm32.c @@ -19,11 +19,11 @@  #include <hal.h>  #include "flash_stm32.h" -#if defined(EEPROM_EMU_STM32F103xB) +#if defined(STM32F1XX)  #    define FLASH_SR_WRPERR FLASH_SR_WRPRTERR  #endif -#if defined(EEPROM_EMU_STM32F401xC) +#if defined(STM32F4XX)  #    define FLASH_SR_PGERR (FLASH_SR_PGSERR | FLASH_SR_PGPERR | FLASH_SR_PGAERR)  #    define FLASH_KEY1 0x45670123U | 
