MBIC_BootLoader.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * MBIC_BootLoader.c
  3. *
  4. * Created on: 2020. 5. 4.
  5. * Author: parkyj
  6. */
  7. #include "main.h"
  8. #include "MBIC_BootLoader.h"
  9. #include "CRC.h"
  10. void MBIC_FirmwareUpdateStart(uint8_t* data);
  11. extern uint32_t crc32(uint32_t crc, const void *buf, size_t size);
  12. typedef enum{
  13. MBIC_DOWNLOAD_CRC,
  14. MBIC_DOWNLOAD_SIZE,
  15. MBIC_DOWNLOAD_BUF,
  16. };
  17. typedef enum{
  18. DOWNLOAD_NOTI_REQ = 0x10,
  19. DOWNLOAD_DATA,
  20. DOWNLOAD_CONFIRM,
  21. DOWNLOAD_COMPLETE_CMD,
  22. SYSTEMP_REBOOT,
  23. };
  24. void MBIC_FirmwareUpdateStart(uint8_t* data){
  25. uint8_t ret = 0,
  26. uint32_t crccheck = 0;
  27. // crc32();
  28. switch(data){
  29. case DOWNLOAD_NOTI_REQ:break;
  30. case DOWNLOAD_DATA:break;
  31. case DOWNLOAD_CONFIRM:break;
  32. case DOWNLOAD_COMPLETE_CMD:break;
  33. case SYSTEMP_REBOOT:break;
  34. }
  35. // crccheck = crc32(&data[bluecell_type],data[bluecell_length],data[data[bluecell_length] + 1]);
  36. /* if(crccheck == NO_ERROR){
  37. AckData_Buf[bluecell_type] = FirmwareUpdataAck;
  38. if(data[bluecell_type] == 0xDD || data[bluecell_type] == 0xEE)//Start Firmware byte
  39. ret = Flash_write(&data[0]);
  40. if(ret == 1)
  41. AckData_Buf[bluecell_type] = FirmwareUpdataNak;
  42. }else{
  43. for(uint8_t i = 0; i < data[bluecell_length] + 3; i++)
  44. printf("%02x ",data[i]);
  45. printf("Check Sum error \n");
  46. AckData_Buf[bluecell_type] = FirmwareUpdataNak;
  47. }
  48. AckData_Buf[bluecell_crc] = STH30_CreateCrc(&AckData_Buf[bluecell_type],AckData_Buf[bluecell_length]);
  49. if(data[bluecell_type] != 0xEE && data[bluecell_type] != Bluecell_Reset){
  50. Uart1_Data_Send(&AckData_Buf[bluecell_stx],AckData_Buf[bluecell_length] + 3);
  51. }
  52. if(data[bluecell_type] == 0xEE)
  53. printf("update Complete \n");*/
  54. }