| | |
| | | * Author : www.hido-studio.com |
| | | * Modified Date: : 2020年9月13日 |
| | | *******************************************************************************/ |
| | | uint8_t result1; |
| | | static HIDO_INT32 OTA_HTTPGetFileCallBack(HIDO_UINT32 _u32RespCode, ST_HTTPGetFileResponse *_pstResponse, |
| | | HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len, HIDO_VOID *_pArg) |
| | | { |
| | |
| | | //#endif |
| | | // HAL_Delay(10); |
| | | // Reboot(0); |
| | | uint32_t result = 0; |
| | | uint16_t tmp = 0xCCCC; |
| | | uint16_t tmp = 0xBBBB; |
| | | __disable_irq(); |
| | | result = flash_open(FLASH_ID0,NULL); |
| | | if(!result)//打开成功 |
| | | flash_erase(FLASH_ID0,APP_CONFIG_IAPFLAG_SECTOR_ADDR,FLASH_SECTOR_SIZE); |
| | | result = flash_write_nbytes(FLASH_ID0,APP_CONFIG_IAPFLAG_MAP,(uint8_t*)&tmp,2); |
| | | result1=flash_open(FLASH_ID0,NULL); |
| | | if(!result1) |
| | | { |
| | | flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, 2);//擦除APPFLAG |
| | | flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp)); |
| | | } |
| | | __enable_irq(); |
| | | Serial0PutString("进入升级模式\r\n"); |
| | | g_com_map[CNT_UPDATE]=0; |
| | | save_com_map_to_flash(); |
| | | delay_us(100000); |
| | | delay_us(1000000); |
| | | NVIC_SystemReset(); //软复位回到bootloader |
| | | break; |
| | | break; |
| | | } |
| | | |
| | | OTA_RequestFileData(l_u32OTAFileRecvLen); |
| | |
| | | static HIDO_INT32 OTA_Failed(void) |
| | | { |
| | | /* 升级参数有误,取消升级 */ |
| | | HIDO_UINT16 tmp = 0xFFFF; |
| | | |
| | | // HIDO_Debug("goto app application\r\n"); |
| | | |
| | | // 执行到这里,说明文件下载失败了,需要进一步处理 |
| | |
| | | SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp)); |
| | | SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, 256, SPI_FLASH_SECTOR_ERASE_MODE_4K); |
| | | #endif |
| | | // g_com_map[OTA_FLAG]=0; |
| | | // save_com_map_to_flash(); |
| | | // delay_us(100000); |
| | | uint16_t tmp = 0xFFFF; |
| | | __disable_irq(); |
| | | result1=flash_open(FLASH_ID0,NULL); |
| | | if(!result1) |
| | | { |
| | | flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, 2);//擦除APPFLAG |
| | | flash_write_nbytes(FLASH_ID0, APP_CONFIG_IAPFLAG_MAP, (uint8_t*)&tmp, sizeof(tmp)); |
| | | flash_erase(FLASH_ID0, APP_CONFIG_IAP_PARAM_MAP, 256);//擦除APPFLAG |
| | | } |
| | | __enable_irq(); |
| | | delay_us(1000000); |
| | | NVIC_SystemReset(); //软复位回到bootloader |
| | | |
| | | return HIDO_OK; |