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