Flash program and flash erase on micro STM32F746ZGT7
Hi everyone... I received a source code from another microcontroller STM32F401RBT6 where another developer was flashing and erasing the flash in this way ..
int16_t FlashEraseApp(void)
{
HAL_StatusTypeDef res;
FLASH_EraseInitTypeDef erase_init;
uint32_t page_error;
erase_init.Banks = FLASH_BANK_1;
erase_init.TypeErase = FLASH_TYPEERASE_SECTORS;
erase_init.Sector = 3;
erase_init.NbSectors = 3;
erase_init.VoltageRange = FLASH_VOLTAGE_RANGE_3;
HAL_FLASH_Unlock();
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, (uint32_t)&_app_validity, 0);
HAL_FLASH_Lock();
HAL_FLASH_Unlock();
res = HAL_FLASHEx_Erase(&erase_init, &page_error);
HAL_FLASH_Lock();
if (res == HAL_OK)
return 0;
return -1;
}I would like to know if I can keep the same code considering that i have to start to erase from sector 3... Moreover i would like to know If also these routines are still valid for the new micro
int16_t FlashWriteData(uint32_t flash_addr, uint8_t *data, uint32_t size)
{
short ret;
uint32_t len, addr;
len = 0;
addr = flash_addr;
ret = 0;
HAL_FLASH_Unlock();
while (size != len) {
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_BYTE, addr, data[len]) != HAL_OK) {
ret = -1;
break;
}
len += 1;
addr += 1;
}
HAL_FLASH_Lock();
return ret;
}Thanks a lot for the kind support