INNER CODE UNIT · C
update_checksum
dmitrystu/sboot_stm32 · src/checksum.c:81
static void update_checksum(checksum_t *checksum, uint8_t data) {
data ^= *checksum & 0xFF;
*checksum = (*checksum >> 8) ^ table[data];
}
#elif ((DFU_VERIFY_CHECKSUM == CRC32SMALL) || (DFU_VERIFY_CHECKSUM == CRC64SMALL))
static void init_checksum(checksum_t *checksum) {
*checksum = CRC_INIT;
}
static void update_checksum(checksum_t *checksum, uint8_t data) {
*checksum ^= data;
for (int i =0; i < 8; i++) {
if (*checksum & 0x01) {
*checksum = (*checksum >> 1) ^ CRC_POLY;
} else {
*checksum = (*checksum >> 1);