crc.h
上传用户:xs588588
上传日期:2021-03-30
资源大小:242k
文件大小:2k
源码类别:

DSP编程

开发平台:

C/C++

  1. #define CRC_TABLE_SIZE       256
  2. #define CRC16_CHECK           0xFEE8
  3. #define CRC16R_CHECK       0xBB3D
  4. #define CRC32_CHECK   0xFC891918
  5. #define CRC32R_CHECK       0xCBF43926
  6. // CRC-16: x16 + x15 + x2 + 1
  7. #define CRC16_POLY   0x8005
  8. #define CRC16_INIT_REM        0x0
  9. #define CRC16_FINAL_XOR       0x0
  10. #define CRC16R_POLY           0xA001
  11. #define CRC16R_INIT_REM       0x0
  12. #define CRC16R_FINAL_XOR      0x0
  13. // CRC-CCITT: x16 + x12 + x5 + 1
  14. #define CRC16_POLY_CCITT   0x1021
  15. #define CRC16_INIT_REM_CCITT  0x0
  16. #define CRC16_FINAL_XOR_CCITT 0x0
  17. // CRC-32: x32 + ... + 1
  18. #define CRC32_POLY           0x04C11DB7
  19. #define CRC32_INIT_REM        0xFFFFFFFF
  20. #define CRC32_FINAL_XOR       0xFFFFFFFF
  21. #define CRC32R_POLY           0xEDB88320
  22. #define CRC32R_INIT_REM       0xFFFFFFFF
  23. #define CRC32R_FINAL_XOR      0xFFFFFFFF
  24. unsigned short crc16Bitwise(unsigned short crc, unsigned short poly, 
  25. unsigned char *pmsg, unsigned int msg_size);
  26. unsigned short crc16Bitwise2(unsigned short crc, unsigned short poly,
  27. unsigned char *pmsg, unsigned int msg_size);
  28. unsigned long crc32Bitwise(unsigned long crc, unsigned long poly, 
  29. unsigned char *pmsg, unsigned int msg_size);
  30. unsigned long crc32Bitwise2(unsigned long crc, unsigned long poly, 
  31. unsigned char *pmsg, unsigned int msg_size);
  32. unsigned short crc16TableMethod(unsigned short crc,  unsigned short *table,
  33. unsigned char *pbuffer, unsigned int length);
  34. unsigned short crc16rTableMethod(unsigned short crc,  unsigned short *table,
  35. unsigned char *pbuffer, unsigned int length);
  36. unsigned long crc32TableMethod(unsigned long crc,  unsigned long *table, 
  37.    unsigned char *pbuffer, unsigned int length);
  38. unsigned long crc32rTableMethod(unsigned long crc,  unsigned long *table, 
  39.    unsigned char *pbuffer, unsigned int length);
  40. void crc16BuildTable(unsigned short *ptable, unsigned short poly);
  41. void crc32BuildTable(unsigned long *ptable, unsigned long poly);
  42. unsigned long bitReflect(unsigned long data, unsigned int width);