BSL_CI_calculateCRC中的DL_CRC_setSeed32函数和DL_CRC_feedData8函数,这两个是怎么实现的?我在BSL主机的例程找到了一个CRC32计算函数,
#define CRC32_POLY 0xEDB88320
uint32_t softwareCRC(const uint8_t *data, uint8_t length)
{
uint32_t ii, jj, byte, crc, mask;
;
crc = 0xFFFFFFFF;
for (ii = 0; ii < length; ii++)
{
byte = data[ii];
crc = crc ^ byte;
for (jj = 0; jj < 8; jj++)
{
mask = -(crc & 1);
crc = (crc >> 1) ^ (CRC32_POLY & mask);
}
}
return crc;
}
但这个函数计算的CRC并不能通过命令号0x26的验证,想知道这个校验是如何计算的
但这个函数计算的CRC并不能通过命令号0x26的验证,想知道这个校验是如何计算的