#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
}
