Chapter 50. crc functions, Crc api, Cygposixcrc32 – Comtrol eCos User Manual

Page 645: Cygcrc32, Cygethercrc32, Cygcrc16, Crc functions, Cyg_posix_crc32, Cyg_crc32, Cyg_ether_crc32

Advertising
background image

Chapter 50. CRC Functions

CRC API

The package implements a number of CRC functions as described below. The API to these functions is in the
include file

cyg/crc/crc.h

.

cyg_posix_crc32

This function implements a 32 bit CRC which is compliant to the POSIX 1008.2 Standard. This is the same as the
Linux cksum program.

cyg_uint32 cyg_posix_crc32(unsigned char

s, int len);

The CRC calculation is run over the data pointed to by

s

, of length

len

. The CRC is returned as an unsigned long.

cyg_crc32

These

functions

implement

a

32

bit

CRC

by

Gary

S.

Brown.

They

use

the

polynomial

X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0.

cyg_uint32 cyg_crc32(unsigned char

s, int len);

cyg_uint32 cyg_crc32_accumulate(cyg_uint32 crc, unsigned char

s, int len);

The CRC calculation is run over the data pointed to by

s

, of length

len

. The CRC is returned as an unsigned long.

The

CRC

can

be

calculated

over

data

separated

into

multiple

buffers

by

using

the

function

cyg_crc32_accumulate()

. The parameter

crc

should be the result from the previous CRC calculation.

cyg_ether_crc32

These functions implement the 32 bit CRC used by the Ethernet FCS word.

cyg_uint32 cyg_ether_crc32(unsigned char

s, int len);

cyg_uint32 cyg_ether_crc32_accumulate(cyg_uint32 crc, unsigned char

s, int len);

The CRC calculation is run over the data pointed to by

s

, of length

len

. The CRC is returned as an unsigned long.

The

CRC

can

be

calculated

over

data

separated

into

multiple

buffers

by

using

the

function

cyg_ether_crc32_accumulate()

. The parameter

crc

should be the result from the previous CRC

calculation.

cyg_crc16

This function implements a 16 bit CRC. It uses the polynomial x^16+x^12+x^5+1.

cyg_uint16 cyg_crc16(unsigned char

s, int len);

541

Advertising