Fix H5 OTA rollback

This commit is contained in:
robert committed 2026-06-16 10:56:36 +03:00
1 parent 52b9de4189
commit d1ea094067
5 files changed
+18 -10

No files matched your search

+3 -2
View File
@@ -108,10 +108,11 @@
#endif
#if defined(TAMP)
#define MG_OTA_STATE_GET() (TAMP->BKP0R)
#define MG_OTA_STATE_GET() \
(RCC->APB3ENR |= RCC_APB3ENR_RTCAPBEN, TAMP->BKP0R)
#define MG_OTA_STATE_SET(v) \
(RCC->APB3ENR |= RCC_APB3ENR_RTCAPBEN, MG_OTA_DBP_ENABLE(), \
(TAMP->BKP0R = (uint32_t) (v)))
(TAMP->BKP0R = (uint32_t) (v)), TAMP->BKP0R)
#elif defined(RCC_APB4ENR_RTCAPBEN)
#define MG_OTA_STATE_GET() (RTC->BKP0R)
#define MG_OTA_STATE_SET(v) \
+4 -2
View File
@@ -159,8 +159,10 @@ bool mg_ota_write(const void *buf, size_t len) {
}
bool mg_ota_end(void) {
mg_ota_flash_end(&s_mg_flash_stm32h5);
return false;
if (!mg_ota_flash_end(&s_mg_flash_stm32h5)) return false;
*(volatile uint32_t *) 0xe000ed0c = 0x5fa0004U; // NVIC_SystemReset()
return true;
}
struct mg_flash *mg_flash = &s_mg_flash_stm32h5;
#endif