CMD0x15_Request_WriteUpdateTimeStamp.c 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. #include "CommandsDefine.h"
  2. #include "ProjectConfig.h"
  3. #include "string.h"
  4. #include "Helper.h"
  5. #include "iap.h"
  6. /* 获取当前程序是App还是Boot */
  7. /*
  8. 请求格式 包起始标识+CMD0x01_Request_RunningAtWhere+[0x00+0x00]+包尾标识
  9. 返回格式 包起始标识+CMD0x01_Request_RunningAtWhere+[0x00+0x01]+1Byte的RunningAtWhere+包尾标识. RunningAtWhere 约定:RUNNING_AT_APP 0x77,RUNNING_AT_BOOT 0x11
  10. */
  11. void CMD0x15_Request_WriteUpdateTimeStamp_process(u8 *pData,u16 dataLen,u8 bIsContentBitInverted_Recv,u8 bIsContentBitInverted_SendBack)
  12. {
  13. u8 bDataOK=1;
  14. u8 validDataLength=dataLen;
  15. if (bIsContentBitInverted_Recv)
  16. {
  17. validDataLength=dataLen/2;
  18. if (!Helper_CheckInvertBytesIsRegist(pData,dataLen))
  19. bDataOK=0;
  20. }
  21. if (validDataLength<Version_DateLength)
  22. bDataOK=0;
  23. if (bDataOK)
  24. {
  25. struct BootWriteFlashInfoStruct bootWriteFlashInfo;
  26. iap_ReadBootWriteInfo(&bootWriteFlashInfo);
  27. memcpy(bootWriteFlashInfo.UpdateTimeStamp,pData,Version_DateLength);
  28. iap_UpdateBootWriteInfo(&bootWriteFlashInfo);
  29. }
  30. else
  31. Command_SendbackErrorMessage(Error0x02_CannotRunAtBoot,1);
  32. }