#include "CommandsDefine.h" #include "ProjectConfig.h" #include "iap.h" /* 告诉Boot,传送的程序已经完成。 正确响应:设置APP OK标识,然后跳转到App 接收包格式: 包起始标识 +CMD0x07_Request_UpdateFinished +[2字节的数据长度,=0] +包尾标识 说明:在更新 程序中,应该在一定时间内获取程序运行在何处,成功的标识是运行在App */ void CMD0x11_Request_UpdateFinished_process(u8 *pData,u16 dataLen,u8 bIsContentBitInverted_Recv,u8 bIsContentBitInverted_SendBack) { #ifdef RUNNING_WHERE_AT_BOOT UpdateWhat = RUNNING_AT_APP;//app Updating = 0; struct BootWriteFlashInfoStruct bootWriteFlashInfo; iap_ReadBootWriteInfo(&bootWriteFlashInfo); bootWriteFlashInfo.BootVersion.Version_SubNo=0xff; iap_UpdateBootWriteInfo(&bootWriteFlashInfo); //跳转APP1 if(((*(vu32*)(FLASH_ADDR_APP+4))&0xFF000000)==0x08000000)// 0X08XXXXXX. //if(((*(vu32*)(FLASH_APP1_ADDR))&0x2FFE0000)==0x200A0000)//判断 { iap_set_appstate(); //设置固件有效标志 //iap_rst_run_count();//重置计数 iap_load_app(FLASH_ADDR_APP);//执行FLASH APP代码 } else { Updating =Updating;//test point } #else Command_SendbackErrorMessage(Error0x04_AlreadyAtApp,1); #endif }