Modify ota version and jump flag

This commit is contained in:
songyanguang 2025-06-18 16:04:09 +08:00
parent 4eb5f245cb
commit fc82573bbe
5 changed files with 39 additions and 18 deletions

View File

@ -181,7 +181,7 @@ CONFIG_DOWN_FLAH_ADDRESS=0x08008000
CONFIG_FLAG_FLAH_ADDRESS=0x08077000 CONFIG_FLAG_FLAH_ADDRESS=0x08077000
CONFIG_APP_FLASH_SIZE=0x00100000 CONFIG_APP_FLASH_SIZE=0x00100000
CONFIG_OTA_RX_TIMEOUT=600 CONFIG_OTA_RX_TIMEOUT=600
CONFIG_OTA_FRAME_SIZE=1024 CONFIG_OTA_FRAME_SIZE=2048
# #
# APP_Framework # APP_Framework

View File

@ -29,7 +29,7 @@ CONFIG_LTE_DEVICE_NAME_1="lte_dev1"
# #
CONFIG_RESOURCES_SERIAL=y CONFIG_RESOURCES_SERIAL=y
CONFIG_SERIAL_USING_DMA=y CONFIG_SERIAL_USING_DMA=y
CONFIG_SERIAL_RB_BUFSZ=128 CONFIG_SERIAL_RB_BUFSZ=2048
# #
# Kernel feature # Kernel feature
@ -117,7 +117,7 @@ CONFIG_SHELL_LOCK_TIMEOUT=10000
# #
# Set shell config param # Set shell config param
# #
CONFIG_SHELL_TASK_STACK_SIZE=1024 CONFIG_SHELL_TASK_STACK_SIZE=4096
CONFIG_SHELL_TASK_PRIORITY=20 CONFIG_SHELL_TASK_PRIORITY=20
CONFIG_SHELL_MAX_NUMBER=5 CONFIG_SHELL_MAX_NUMBER=5
CONFIG_SHELL_PARAMETER_MAX_NUMBER=8 CONFIG_SHELL_PARAMETER_MAX_NUMBER=8
@ -206,7 +206,7 @@ CONFIG_DOWN_FLAH_ADDRESS=0x08008000
CONFIG_FLAG_FLAH_ADDRESS=0x08077000 CONFIG_FLAG_FLAH_ADDRESS=0x08077000
CONFIG_APP_FLASH_SIZE=0x00100000 CONFIG_APP_FLASH_SIZE=0x00100000
CONFIG_OTA_RX_TIMEOUT=600 CONFIG_OTA_RX_TIMEOUT=600
CONFIG_OTA_FRAME_SIZE=1024 CONFIG_OTA_FRAME_SIZE=2048
# #
# APP_Framework # APP_Framework

View File

@ -181,7 +181,7 @@ CONFIG_DOWN_FLAH_ADDRESS=0x08008000
CONFIG_FLAG_FLAH_ADDRESS=0x08077000 CONFIG_FLAG_FLAH_ADDRESS=0x08077000
CONFIG_APP_FLASH_SIZE=0x00100000 CONFIG_APP_FLASH_SIZE=0x00100000
CONFIG_OTA_RX_TIMEOUT=600 CONFIG_OTA_RX_TIMEOUT=600
CONFIG_OTA_FRAME_SIZE=1024 CONFIG_OTA_FRAME_SIZE=2048
# #
# APP_Framework # APP_Framework

View File

@ -250,4 +250,9 @@ void InitBoardHardware() {
(x_ubase)MEMORY_END_ADDRESS, SRAM_SIZE, __stack_size); (x_ubase)MEMORY_END_ADDRESS, SRAM_SIZE, __stack_size);
KPrintf("board init done.\n"); KPrintf("board init done.\n");
KPrintf("start kernel...\n"); KPrintf("start kernel...\n");
#ifdef TOOL_USING_OTA
extern void app_clear_jumpflag(void);
app_clear_jumpflag(); // set lastjumpflag to JUMP_SUCCESS_FLAG
#endif
} }

View File

@ -487,12 +487,15 @@ static void BootLoaderJumpApp(void)
if(p_ota_info->lastjumpflag == JUMP_FAILED_FLAG) if(p_ota_info->lastjumpflag == JUMP_FAILED_FLAG)
{ {
mcuboot.print_string("\r\n------Jump to app partition failed,start version rollback!------\r\n"); mcuboot.print_string("\r\n------Jump to app partition failed,start version rollback!------\r\n");
#ifdef BOARD_CH32V208RBT6 if(XIUOS_FLAH_ADDRESS == DOWN_FLAH_ADDRESS)
p_ota_info->lastjumpflag = JUMP_SUCCESS_FLAG; {
UpdateOTAFlag(p_ota_info); p_ota_info->status = OTA_STATUS_BOOT_DOWNLOAD;
#else UpdateOTAFlag(p_ota_info);
BackupVersion(); }
#endif else
{
BackupVersion();
}
} }
else else
{ {
@ -985,6 +988,11 @@ reconnect:
#ifndef MCUBOOT_BOOTLOADER #ifndef MCUBOOT_BOOTLOADER
if(XIUOS_FLAH_ADDRESS == DOWN_FLAH_ADDRESS) if(XIUOS_FLAH_ADDRESS == DOWN_FLAH_ADDRESS)
{ {
if (strcmp(platform_ota.version, p_ota_info->os.version) == 0) {
KPrintf("current version is the latest version and does not upgrade\n");
MdelayKTask(2000);
continue;
}
KPrintf("mqttCloudInteraction write OTA flag and reboot\n"); KPrintf("mqttCloudInteraction write OTA flag and reboot\n");
p_ota_info->status = OTA_STATUS_BOOT_DOWNLOAD; p_ota_info->status = OTA_STATUS_BOOT_DOWNLOAD;
UpdateOTAFlag(p_ota_info); UpdateOTAFlag(p_ota_info);
@ -1134,6 +1142,11 @@ reconnect:
memset(p_ota_info->down.description,0,sizeof(p_ota_info->down.description)); memset(p_ota_info->down.description,0,sizeof(p_ota_info->down.description));
strncpy(p_ota_info->down.description, "MQTT OTA bin.",sizeof(p_ota_info->down.description)); strncpy(p_ota_info->down.description, "MQTT OTA bin.",sizeof(p_ota_info->down.description));
if(XIUOS_FLAH_ADDRESS == DOWN_FLAH_ADDRESS)
{
memcpy(&p_ota_info->os, &p_ota_info->down,sizeof(p_ota_info->os));
}
p_ota_info->status = OTA_STATUS_READY; p_ota_info->status = OTA_STATUS_READY;
memset(p_ota_info->error_message,0,sizeof(p_ota_info->error_message)); memset(p_ota_info->error_message,0,sizeof(p_ota_info->error_message));
@ -1419,13 +1432,13 @@ int OtaTask(void)
*******************************************************************************/ *******************************************************************************/
void app_clear_jumpflag(void) void app_clear_jumpflag(void)
{ {
ota_info_t ota_info; ota_info_t *p_ota_info = &g_ota_info;
mcuboot.flash_init(); mcuboot.flash_init();
//跳转成功设置lastjumpflag为JUMP_SUCCESS_FLAG //跳转成功设置lastjumpflag为JUMP_SUCCESS_FLAG
memset(&ota_info, 0, sizeof(ota_info_t)); memset(p_ota_info, 0, sizeof(ota_info_t));
mcuboot.op_flash_read(FLAG_FLAH_ADDRESS, (void*)&ota_info, sizeof(ota_info_t)); mcuboot.op_flash_read(FLAG_FLAH_ADDRESS, (void*)p_ota_info, sizeof(ota_info_t));
ota_info.lastjumpflag = JUMP_SUCCESS_FLAG; p_ota_info->lastjumpflag = JUMP_SUCCESS_FLAG;
UpdateOTAFlag(&ota_info); UpdateOTAFlag(p_ota_info);
mcuboot.flash_deinit(); mcuboot.flash_deinit();
} }
@ -1511,8 +1524,11 @@ void ota_entry(void)
BootLoaderJumpApp(); BootLoaderJumpApp();
} }
} }
Update(); else
BootLoaderJumpApp(); {
Update();
BootLoaderJumpApp();
}
} }
} }
} }