12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- * Bootloader.c
- *
- * Created on: Jul 10, 2019
- * Author: parkyj
- */
- #include "Bootloader.h"
- //Blueprotocol_t * UpdateFiledata;
- uint16_t updatecnt = 0;
- /***
- * Header Check Function
- * ***/
- #define Bluecell_BootStart 0x0b
- void Firmware_BootStart_Signal(){
- uint8_t bootdata[5] = {0xbe,Bluecell_BootStart,0x02,0,0xeb};
- bootdata[bluecell_crc] = STH30_CreateCrc(&bootdata[bluecell_type],bootdata[bluecell_length]);
- Uart1_Data_Send(&bootdata[bluecell_stx],bootdata[bluecell_length] + 3);
- }
- void FirmwareUpdateStart(uint8_t* data){
- uint8_t ret = 0,crccheck = 0;
- uint8_t tempdata[5] = {0xbe,FirmwareUpdataAck,0x02,0,0xbe};
- crccheck = STH30_CheckCrc(&data[bluecell_type],data[bluecell_length],data[data[bluecell_length] + 1]);
- if(crccheck == NO_ERROR){
- tempdata[bluecell_type] = FirmwareUpdataAck;
- if(data[bluecell_type] == 0xDD || data[bluecell_type] == 0xEE)//Start Firmware byte
- ret = Flash_write(&data[0]);
- if(ret == 1)
- tempdata[bluecell_type] = FirmwareUpdataNak;
- }else{
- for(uint8_t i = 0; i < data[bluecell_length] + 3; i++)
- printf("%02x ",data[i]);
- printf("Check Sum error \n");
- tempdata[bluecell_type] = FirmwareUpdataNak;
- }
- tempdata[bluecell_crc] = STH30_CreateCrc(&tempdata[bluecell_type],tempdata[bluecell_length]);
- if(data[bluecell_type] != 0xEE && data[bluecell_type] != Bluecell_Reset){
- Uart1_Data_Send(&tempdata[bluecell_stx],tempdata[bluecell_length] + 3);
- }
- if(data[bluecell_type] == 0xEE)
- printf("update Complete \n");
- }
|