simple test EEPROM emulation (STM algorithm described in the application notes: AN4061, AN3969, AN2594, AN3390, AN4056) for STM32F091
Description in AN4061 from STM.
Changed (compared with the original code AN4061):
- possibility of a larger size of emulated EEPROM (using multiple Flash pages)
- dummy variables prevent overwrite code in Flash by algorithm of EEPROM emulation
Macro PAGE_NB_PVP (in eeprom.h) defines the size of the virtual page.
Eg. For F091 where Flash page are 2kB value 4 gives 8kB.
Size 8kB virtual page gives you the ability to use max. approx. 2k of 16-bit variables.
Diff: eeprom/eeprom.cpp
- Revision:
- 2:3d16b28380a9
- Parent:
- 1:e91328f723ab
- Child:
- 3:a51a1737b55d
--- a/eeprom/eeprom.cpp Sun May 29 02:04:21 2016 +0000 +++ b/eeprom/eeprom.cpp Fri Jul 29 21:18:28 2016 +0000 @@ -47,6 +47,10 @@ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ +/* Dummy variable to protect eeprom pages if code size is bigger than 32kb (F401) */ +const uint8_t Eeprom_area[2 * PAGE_SIZE] __attribute__((at(EEPROM_START_ADDRESS),used))={ [0 ... (2 * PAGE_SIZE-1)] = 0xFF }; + + /* Global variable used to store variable value in read sequence */ uint16_t DataVar = 0;