Write and read using Flash memory on STM32F7xx (24 sectors)
I've got the following structure to write to memory:
```
#define FLASH_CONFIG_START_ADDR ((uint32_t) 0x080E0000)
#define FLASH_CONFIG_END_ADDR ((uint32_t) 0x080E0040)
union NVRAM {
Config_t config;
uint8_t data[512];
} DevNVRAM;
```
I've used this code for writing to memory
```
uint32_t l_address = FLASH_CONFIG_START_ADDR;
uint8_t l_index = 0x00;
l_address = FLASH_CONFIG_START_ADDR;
HAL_FLASH_Unlock();
FLASH_Erase_Sector(FLASH_SECTOR_11, VOLTAGE_RANGE_1);
while (l_address < FLASH_CONFIG_END_ADDR)
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_BYTE, l_address,
DevNVRAM.data[l_index]) == HAL_OK) {
l_index += 1;
l_address += 1;
}
HAL_FLASH_Lock();
```
and then I simply read from the same block of memory.
```
l_address = FLASH_CONFIG_START_ADDR;
l_index = 0x00;
while (l_address < FLASH_CONFIG_END_ADDR) {
DevNVRAM.data[l_index] = *(uint8_t*) l_address;
l_index += 1;
l_address += 1;
}
```
The problem is the following, after I have read the whole sector, data becomes different, in particular, it is filled with zeros. What is the problem with code?
P.S. How can I get first address of memory blovk in the sector without hard-coddding?
