Contiki 2.6

Cyclic Redundancy Check 16 (CRC16) calculation

The Cyclic Redundancy Check 16 is a hash function that produces a checksum that is used to detect errors in transmissions. More...

Files

file  crc16.c
 

Implementation of the CRC16 calculcation.


file  crc16.h
 

Header file for the CRC16 calculcation.


Functions

unsigned short crc16_add (unsigned char b, unsigned short crc)
 Update an accumulated CRC16 checksum with one byte.
unsigned short crc16_data (const unsigned char *data, int datalen, unsigned short acc)
 Calculate the CRC16 over a data area.

Detailed Description

The Cyclic Redundancy Check 16 is a hash function that produces a checksum that is used to detect errors in transmissions.

The CRC16 calculation module is an iterative CRC calculator that can be used to cumulatively update a CRC checksum for every incoming byte.


Function Documentation

unsigned short crc16_add ( unsigned char  b,
unsigned short  crc 
)

Update an accumulated CRC16 checksum with one byte.

Parameters:
bThe byte to be added to the checksum
crcThe accumulated CRC that is to be updated.
Returns:
The updated CRC checksum.

This function updates an accumulated CRC16 checksum with one byte. It can be used as a running checksum, or to checksum an entire data block.

Note:
The algorithm used in this implementation is tailored for a running checksum and does not perform as well as a table-driven algorithm when checksumming an entire data block.

Definition at line 48 of file crc16.c.

Referenced by crc16_data().

unsigned short crc16_data ( const unsigned char *  data,
int  datalen,
unsigned short  acc 
)

Calculate the CRC16 over a data area.

Parameters:
dataPointer to the data
datalenThe length of the data
crcThe accumulated CRC that is to be updated (or zero).
Returns:
The CRC16 checksum.

This function calculates the CRC16 checksum of a data area.

Note:
The algorithm used in this implementation is tailored for a running checksum and does not perform as well as a table-driven algorithm when checksumming an entire data block.

Definition at line 67 of file crc16.c.

References crc16_add().