I am using STM32F777II mcu where I wanted to know how to store non-volatile data? I see that this controller's datasheet doesn't say it has any EEPROM.
There should be 4KB of BKPSRAM (NVRAM) powered by the battery attached to VBAT, this should be part of the PWR/RTC block.
0x40024000 - 0x40024FFF BKPSRAM
Use a pointer to access, or create a structure for your data and use a pointer to the structure.
Isn't there any storage which does not needs external battery backup?
Yes, it is - the FLASH; but there are inconveniences related to using it as a backup memory (code execution from FLASH stalls, erase granularity is high, endurance limited).
why these mcus don't have eeproms like the classic old mcus?
Because the size and process/geometry don't work well.
You can place small/cheap external components in the footprint of a 40pin DIP socket, along with the processor.
How frequently is the data going to change? I tend to put user configuration data in FLASH, because it doesn't change all the time, and unlikely to change more than 100 times during the product life span. Things that don't change like MAC addresses, serial numbers or security keys could be written to OTP
I use FRAM, it's fast and very reliable.
For projects Flash will not be used very often, I shift my app to another address (i.e. 0x80020000)
to use the 32kB section(s). I believe in 100K erase operations under normal temperature conditions
and 10-20 years data retention, but nothing is forever...
Retrieving data ...