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);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…