LOVEEVER 发表于 2025-8-12 19:00

校验算法模块算法,直接移植就好

校验算法模块(crc.h/.c)
提供常用CRC16/CRC32算法,接口简洁,便于移植。

// crc.h
#ifndef CRC_H
#define CRC_H
#include <stdint.h>
uint16_tcrc16_ccitt(const uint8_t *data, uint32_t len, uint16_t init);
uint32_tcrc32_simple(const uint8_t *data, uint32_t len, uint32_t init);
#endif

// crc.c
#include "crc.h"
uint16_tcrc16_ccitt(const uint8_t *data, uint32_t len, uint16_t init) {
    uint16_t crc = init;
    for (uint32_t i = 0; i < len; ++i) {
      crc ^= (uint16_t)data << 8;
      for (int j = 0; j < 8; ++j)
            crc = (crc & 0x8000) ? (crc << 1) ^ 0x1021 : (crc << 1);
    }
    return crc;
}
uint32_tcrc32_simple(const uint8_t *data, uint32_t len, uint32_t init) {
    uint32_t crc = init;
    for (uint32_t i = 0; i < len; ++i) {
      crc ^= data;
      for (int j = 0; j < 8; ++j)
            crc = (crc & 1) ? (crc >> 1) ^ 0xEDB88320 : (crc >> 1);
    }
    return crc;
}

AdaMaYun 发表于 2025-9-18 09:58

校验算法模块算法直接移植很实用

小小蚂蚁举千斤 发表于 2025-9-23 08:15

可以直接移植使用

jf101 发表于 2025-9-23 16:44

校验算法模块算法,直接移植就好

中国龙芯CDX 发表于 2025-9-25 15:22

校验算法模块算法

OKAKAKO 发表于 2025-9-26 17:09

很不错的校验算法模块算法

星辰大海不退缩 发表于 2025-9-27 13:35

校验算法模块算法,直接移植就好

小夏天的大西瓜 发表于 2025-9-28 15:56

很不错的校验算法模块算法
页: [1]
查看完整版本: 校验算法模块算法,直接移植就好