-
Notifications
You must be signed in to change notification settings - Fork 1k
Wrong flash size for eeprom emulation #1316
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
Hi @JyeSmith Basically the EEPROM library is an emulation using last page flash. |
I've tested |
@fpistm this is not working as expected on L432 when flash size is smaller than max 256kB :) We have used stm32l432kbu6 which has 128kB of FLASH. Current code calculates flash page index: Then EEPROM base address is defined:
Could you reopen this error? |
@ABOSTM could you have a look on this please? Thanks in advance. |
@JyeSmith, But fix will be a real challenge, as other STM32 series are impacted, and it will be difficult to find generic implementation, taking into account single bank/dual bank, possible flash discontinuity between banks, ... |
I cannot save to EEPROM as well on STM32L432KBU6 on latest version. After changing flash end as suggested in #1316 (comment) It saves and reads as it should. |
FLASH_SIZE defined by the CMSIS Device Peripheral Access Layer Header File is the maximum one of a product line. So depending of the mcu this is not the correct one. As an example, L432KC have 256 KB while L432Kb has 128 KB. Using LL_GetFlashSize() allows to get the correct FLASH size. Fixes stm32duino#1316 Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
FLASH_SIZE defined by the CMSIS Device Peripheral Access Layer Header File is the maximum one of a product line. So depending of the mcu this is not the correct one. As an example, L432KC have 256 KB while L432Kb has 128 KB. Using LL_GetFlashSize() allows to get the correct FLASH size. Fixes stm32duino#1316 Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
FLASH_SIZE defined by the CMSIS Device Peripheral Access Layer Header File is the maximum one of a product line. So depending of the mcu this is not the correct one. As an example, L432KC have 256 KB while L432Kb has 128 KB. Using LL_GetFlashSize() allows to get the correct FLASH size. Fixes #1316 Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
FLASH_END which is defined in CMSIS file doesn't take into account the real flash size of a the device, (it is just the maximum possible within the productline). Fixes stm32duino#1316, fixes stm32duino#1500 Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
Hey,
I am trying to use eeprom on the STM32L432. It should be pretty straight forward but I dont appear to be having any luck. Is someone able to confirm it works?
Cheers
The text was updated successfully, but these errors were encountered: