improved crc

This commit is contained in:
Marcel Peterkau 2022-03-08 21:23:27 +01:00
parent 7a84b80126
commit 86e289f56f

View File

@ -172,14 +172,19 @@ uint32_t Checksum_EEPROM(uint8_t const *data, size_t len)
{
if (data == NULL)
return 0;
uint32_t crc = 0;
uint32_t crc, mask;
crc = 0xFFFFFFFF;
while (len--)
{
crc ^= *data++;
for (uint8_t k = 0; k < 8; k++)
crc = crc & 1 ? (crc >> 1) ^ 0xb2 : crc >> 1;
{
mask = -(crc & 1);
crc = (crc >> 1) ^ (0xEDB88320 & mask);
}
}
return crc ^ 0xff;
return ~crc;
}
void dumpEEPROM(uint16_t memoryAddress, uint16_t length)