在实施固件升级时,选择适当的策略对系统的稳定性和可靠性至关重要。
分享在STM32H7上实施固件升级的策略
. 双备份策略: 双备份是一种常见的固件升级策略,通常涉及将新固件加载到备份区域,然后通过软件触发切换。在STM32H7中,这可以通过FLASH_CR寄存器和FLASH_KEY进行实现。
- HAL_FLASH_Unlock();
- HAL_FLASH_OB_Unlock();
- // 擦除备份区域
- HAL_FLASHEx_Erase(&EraseInitStruct, &PageError);
- // 写入新固件到备份区域
- HAL_FLASH_Program(TYPEPROGRAM_WORD, destination_address, source_data);
- // 锁定 Flash
- HAL_FLASH_Lock();
- HAL_FLASH_OB_Lock();
- // 切换到备份区域
- HAL_FLASH_OB_RDP_LevelConfig(OB_RDP_LEVEL_1);
- NVIC_SystemReset();
|