I was reading up on the flash eeprom and best I can tell for the stm32f chips this is needed. micromouseusa.com/
Has Keil mdk5 not provided a simple function?
Surely, ST provide examples of how to do this for the specific chip that you have?
Yes, it is important to know (at least for you to know) what ST libraries you are using, assuming that you are in fact using some. There is the STM32F2xx_StdPeriph_Lib of which the example you posted uses. It fully supports the STM32F205. There is also the STM32F2xx_HAL_Driver?
The linked Stack Overflow thread specifically states that it uses STM32F4xx_DSP_StdPeriph_Lib - which is clearly not the one for STM32F2...
I have STM32F2xx_StdPeriph_Lib_V1.1.0 to hand.
It does, indeed, have a Backup Domain example - in Project\STM32F2xx_StdPeriph_Examples\RTC\BKP_Domain
I don't see the example in C:\Keil_v5\ I normally use the pack installer and I don't see it in there either. Anyone have a link to the example. I can't find it searching the net.
"Get Software", bottom of the page gets you to the software examples Andrew and I have worked with. www.st.com/.../stsw-stm32062.html
Ok thx, one thing before I start this journey. Is this example only going to get me the 80 bytes? I read the RTC only had 80 and the other (more battery drain) had more.
The RTC has 80 bytes of backup registers, as I recall.
The BKPRAM (NVRAM) has 4KB
hmm, same errors as my post on 22-Aug-2017 15:28
Many definitions missing. I tried to included #include "stm322xg_eval.h" but it is not found and also not included in the example download.
Again, what firmware library are you using? CLEARLY (at least to me) you are not using the STM32F2xx_StdPeriph_Lib. Your examples that you have posted are expecting you to be using that firmware library. The reason you are getting errors EVERY TIME you build your example code is because it is making references to the STM32F2xx_StdPeriph_Lib and you are not actually using that library.
The library is stm32f2xx_hal
After destruction with the team and considering nvram/i2c, eeprom, flash. We decided to go with flash. Eeprom emulation or may what "Clive One" suggested. Can anyone suggest a way to see the flash after I do a test write? A visual debug would be essential in troubleshooting.
oops / discussion - but sometimes does feel like destruction.
That's what the debugger is for!
Please read the manual: http://www.keil.com/support/man/docs/uv4/uv4_db_dbg_memwin.htm
I found a project of some help.
github.com/.../eepromConfig.h
It compiles all but he flash erase.
flashErase.NbPages=1;//error no member flashErase.Banks = FLASH_BANK_1; flashErase.PageAddress = _EEPROM_FLASH_PAGE_ADDRESS; //error no member flashErase.TypeErase = FLASH_TYPEERASE_PAGES;
and FLASH_TYPEERASE_PAGES does no exist.
flashErase has; voltageRange nbSectors sector
guesssing nbSectors/sectors and nbPages/PageAddress interchangeable? and how can I find the missing define FLASH_TYPEERASE_PAGES what would I use for a voltageRange?
ok got it all flashErase.NbSectors=1; flashErase.Banks = FLASH_BANK_1; flashErase.Sector = _EEPROM_FLASH_PAGE_ADDRESS; flashErase.TypeErase = FLASH_TYPEERASE_SECTORS;
Right I forgot this Keil had a rather useful debugger, thx.
Thank you. The Flash solution is a very good choice (as Clive suggested very early). Even better than the EEPROM. Good Luck.
forget all you heard about EEPROM. although not always true EEPROM has become to mean "serial storage" the flash is accessible parallel.
remember you can tot set a bit in flash, only clear it
bad code but shows the principle
struct flashthinh unsigned char mark = o unsigned char unsigned char
to write scan the structures till you find mark =0xff write there
to read scan the structures till you find mark =0xff back up one and read