MSPM0L1306: MSPM0L1306:BSL中的CRC32 DL_CRC_feedData8是怎么实现的?

Part Number: MSPM0L1306


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的验证,想知道这个校验是如何计算的