Expand description
compute crcs using the ccitt polynomial efficiently without tables
P(x) = x16 + x12 + x**5 + 1
MSB polynomial: 0x8810 MSB polynomial (with explicit 1): 0x1021
https://users.ece.cmu.edu/~koopman/crc/c16/0x8810.txt
The method used is described in a few places:
- Greg Cook provides some commented 6502 asm
- Jon Buller describes how to determine it through automated symbolic calculation and provides some 8051 asm
- adapted by others into C
- the same method is used in avr-libc’s
_crc_ccitt_update
function.
Structs§
Constants§
- CRC_
16_ AUTOSAR - Alias of
CRC_16_IBM_3740
- CRC_
16_ CCITT - Alias of
CRC_16_KERMIT
- CRC_
16_ GENIBUS - CRC-16/GENIBUS
- CRC_
16_ GSM - CRC-16/GSM
- CRC_
16_ IBM_ 3740 - CRC-16/IBM-3740
- CRC_
16_ IBM_ SDLC - CRC-16/IBM-SDLC
- CRC_
16_ ISO_ HDLC - Alias of
CRC_16_IBM_SDLC
- CRC_
16_ ISO_ IEC_ 14443_ 3_ A - CRC-16/ISO-IEC-14443-3-A
- CRC_
16_ ISO_ IEC_ 14443_ 3_ B - Alias of
CRC_16_IBM_SDLC
- CRC_
16_ KERMIT - CRC-16/KERMIT
- CRC_
16_ LORA - Alias of
CRC_16_XMODEM
- CRC_
16_ XMODEM - CRC-16/XMODEM
- CRC_
16_ X_ 25 - Alias of
CRC_16_IBM_SDLC
Functions§
- update
- The lowest level operation, applies a single byte of data to a given crc and returns the new crc