diff options
author | Adrian <elagil@users.noreply.github.com> | 2020-10-22 12:05:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-22 21:05:01 +1100 |
commit | 120c42255baecb664ae813d58aa3010760f97795 (patch) | |
tree | bfa044740e946d05ee1d1017c7a7b65a93830d99 | |
parent | f9853433c140700ce6bfbfba7517e1e0620789d4 (diff) |
Added EEPROM emulation for STM32F042x6 series processors (#10685)
* Added STM32F042x6 support for EEPROM emulation
* Default to lower stack size on STM32F042
* Moved stack setting
* Re-moved stack definition
* Removed unnecessary check
-rw-r--r-- | common_features.mk | 11 | ||||
-rw-r--r-- | tmk_core/common/chibios/eeprom_stm32.h | 6 | ||||
-rw-r--r-- | tmk_core/common/chibios/flash_stm32.c | 3 |
3 files changed, 19 insertions, 1 deletions
diff --git a/common_features.mk b/common_features.mk index ed6908f4b8..e0ae1d74c1 100644 --- a/common_features.mk +++ b/common_features.mk @@ -114,6 +114,17 @@ else SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c OPT_DEFS += -DEEPROM_EMU_STM32F072xB OPT_DEFS += -DSTM32_EEPROM_ENABLE + 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 + + SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c + SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c + OPT_DEFS += -DEEPROM_EMU_STM32F042x6 + OPT_DEFS += -DSTM32_EEPROM_ENABLE else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) OPT_DEFS += -DEEPROM_DRIVER COMMON_VPATH += $(DRIVER_PATH)/eeprom diff --git a/tmk_core/common/chibios/eeprom_stm32.h b/tmk_core/common/chibios/eeprom_stm32.h index e689145954..ea0ce06400 100644 --- a/tmk_core/common/chibios/eeprom_stm32.h +++ b/tmk_core/common/chibios/eeprom_stm32.h @@ -36,12 +36,14 @@ # define MCU_STM32F103RB #elif defined(EEPROM_EMU_STM32F072xB) # define MCU_STM32F072CB +#elif defined(EEPROM_EMU_STM32F042x6) +# define MCU_STM32F042K6 #else # error "not implemented." #endif #ifndef EEPROM_PAGE_SIZE -# if defined(MCU_STM32F103RB) +# if defined(MCU_STM32F103RB) || defined(MCU_STM32F042K6) # define FEE_PAGE_SIZE (uint16_t)0x400 // Page size = 1KByte # define FEE_DENSITY_PAGES 2 // How many pages are used # elif defined(MCU_STM32F103ZE) || defined(MCU_STM32F103RE) || defined(MCU_STM32F103RD) || defined(MCU_STM32F303CC) || defined(MCU_STM32F072CB) @@ -55,6 +57,8 @@ #ifndef EEPROM_START_ADDRESS # if defined(MCU_STM32F103RB) || defined(MCU_STM32F072CB) # define FEE_MCU_FLASH_SIZE 128 // Size in Kb +# elif defined(MCU_STM32F042K6) +# define FEE_MCU_FLASH_SIZE 32 // Size in Kb # elif defined(MCU_STM32F103ZE) || defined(MCU_STM32F103RE) # define FEE_MCU_FLASH_SIZE 512 // Size in Kb # elif defined(MCU_STM32F103RD) diff --git a/tmk_core/common/chibios/flash_stm32.c b/tmk_core/common/chibios/flash_stm32.c index e166fc5e6e..e8b3dc4bc9 100644 --- a/tmk_core/common/chibios/flash_stm32.c +++ b/tmk_core/common/chibios/flash_stm32.c @@ -25,6 +25,9 @@ #elif defined(EEPROM_EMU_STM32F072xB) # define STM32F072xB # include "stm32f0xx.h" +#elif defined(EEPROM_EMU_STM32F042x6) +# define STM32F042x6 +# include "stm32f0xx.h" #else # error "not implemented." #endif |