The friendly Operating System for the Internet of Things

Checksum function libraries. More...
This module provides a number of checksum functions. Most notably is the CRC16CCITT and the CRC16 (lightweight) modules which provide support for the CRC16 checksum.
CRC16CCITT only provides an implementation of the CCITT flavor of CRC16 (polynomial $ x^{16} + x^{12} + x^{5} + 1 $) for bigendian numbers with starting seed 0x1d0f
(though others can be provided), while CRC16 (lightweight) is more generalized, since it takes the hexadecimal representation of the polynomial as a parameter and provides functions and standardized polynomials for both big and littleendian numbers.
The caveat of CRC16 (lightweight) is that it is significantly slower (approximately factor 8) than CRC16CCITT since the latter is able to calculate the checksum bytewise, while the first calculates needs to calculate it bitwise. CRC16CCITT achieves this advantage by using a lookup table that provides the checksum for every possible bytevalue. It thus trades of memory against speed. If your platform is rather small equipped in memory you should prefer the CRC16 (lightweight) version.
Modules  
CRC16 (lightweight)  
Lightweight CRC16 checksum algorithms.  
CRC16CCITT  
CRC16CCITT checksum algorithm.  
Fletcher16  
Fletcher16 checksum algorithm.  
Fletcher32  
Fletcher32 checksum algorithm.  