/* * MBIC_BootLoader.c * * Created on: 2020. 5. 4. * Author: parkyj */ #include "main.h" #include "MBIC_BootLoader.h" #include "CRC.h" void MBIC_FirmwareUpdateStart(uint8_t* data); extern uint32_t crc32(uint32_t crc, const void *buf, size_t size); typedef enum{ MBIC_DOWNLOAD_CRC, MBIC_DOWNLOAD_SIZE, MBIC_DOWNLOAD_BUF, }; typedef enum{ DOWNLOAD_NOTI_REQ = 0x10, DOWNLOAD_DATA, DOWNLOAD_CONFIRM, DOWNLOAD_COMPLETE_CMD, SYSTEMP_REBOOT, }; void MBIC_FirmwareUpdateStart(uint8_t* data){ uint8_t ret = 0, uint32_t crccheck = 0; // crc32(); switch(data){ case DOWNLOAD_NOTI_REQ:break; case DOWNLOAD_DATA:break; case DOWNLOAD_CONFIRM:break; case DOWNLOAD_COMPLETE_CMD:break; case SYSTEMP_REBOOT:break; } // crccheck = crc32(&data[bluecell_type],data[bluecell_length],data[data[bluecell_length] + 1]); /* if(crccheck == NO_ERROR){ AckData_Buf[bluecell_type] = FirmwareUpdataAck; if(data[bluecell_type] == 0xDD || data[bluecell_type] == 0xEE)//Start Firmware byte ret = Flash_write(&data[0]); if(ret == 1) AckData_Buf[bluecell_type] = FirmwareUpdataNak; }else{ for(uint8_t i = 0; i < data[bluecell_length] + 3; i++) printf("%02x ",data[i]); printf("Check Sum error \n"); AckData_Buf[bluecell_type] = FirmwareUpdataNak; } AckData_Buf[bluecell_crc] = STH30_CreateCrc(&AckData_Buf[bluecell_type],AckData_Buf[bluecell_length]); if(data[bluecell_type] != 0xEE && data[bluecell_type] != Bluecell_Reset){ Uart1_Data_Send(&AckData_Buf[bluecell_stx],AckData_Buf[bluecell_length] + 3); } if(data[bluecell_type] == 0xEE) printf("update Complete \n");*/ }