Question
bank swapping in stm32h745
Hi,
I want to use OTA in stm32h743, for that I need to switch between two bank after flash write, as per reference manual
//HAL_FLASH_OB_Lock();
HAL_FLASH_OB_Unlock();
/* Set OPTSTRT Bit */
SET_BIT(FLASH->OPTSR_PRG, FLASH_OPTCR_SWAP_BANK);
/* Wait for OB change operation to be completed */
status = FLASH_OB_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
/* Set OPTSTRT Bit */
SET_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTSTART);
/* Wait for OB change operation to be completed */
status = FLASH_OB_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
if(READ_BIT(FLASH->OPTSR_CUR, FLASH_OPTCR_SWAP_BANK) != 0U)
{
UARTSendString(RS232_PORT, (unsigned char*)"Bit Set \r\n\r\n");
}
//__disable_irq();
HAL_NVIC_SystemReset();i wrote some code
HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
{
if(READ_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTLOCK) != 0U)
{
/* Authorizes the Option Byte registers programming */
WRITE_REG(FLASH->OPTKEYR, FLASH_OPT_KEY1);
WRITE_REG(FLASH->OPTKEYR, FLASH_OPT_KEY2);
/* Verify that the Option Bytes are unlocked */
if (READ_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTLOCK) != 0U)
{
return HAL_ERROR;
}
}
return HAL_OK;
}but it is not working please guide me for this