STM32H7在OBFlash中更改boot1地址

问题描述

我无法更改Flash中选项字节中的boot1地址

我想更改boot1地址,允许我在不使用跳转的情况下以引导加载程序模式(系统内存)或用户代码模式(闪存)启动。

我目前正在stm32h743评估板上进行测试

这里是更改地址的代码,它似乎没有更改任何内容

HAL_FLASH_OB_Unlock();
HAL_FLASH_Unlock();
 
/* Change Boot0 address */
 
if(mode)OBInit.BootAddr1 = BOOTLOADER_ADDR0;
else OBInit.BootAddr1 = USER_CODE_ADDR0;
HAL_FLASHEx_OBProgram(&OBInit);
 
if (HAL_FLASH_OB_Launch() != HAL_OK)
{
    return(-1);//error
}
 
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();

谢谢

Gabriel

解决方法

已修复: 添加 OBInit.BootConfig=OB_BOOT_ADD1; 之前 if(mode)OBInit.BootAddr1 = BOOTLOADER_ADDR0;