unsigned int BOOT_CRC_Cnt=0x1021; //累计 接收固件CRC
unsigned int crc16_compute(unsigned char const * p_data, unsigned char size, unsigned int const * p_crc)
{
unsigned int crc = (p_crc == NULL) ? 0xFFFF : *p_crc;
for (unsigned char i = 0; i < size; i++)
{
crc = (unsigned char)(crc >> 8) | (crc << 8);
crc ^= p_data[i];
crc ^= (unsigned char)(crc & 0xFF) >> 4;
crc ^= (crc << 8) << 4;
crc ^= ((crc & 0xFF) << 4) << 1;
}
return crc;
}
BOOT_CRC_Cnt = crc16_compute(BOOT_data_buf,BOOT_BYTE_Cnt,&BOOT_CRC_Cnt);//crc