Cyclic Redundancy Check Function Documentation

 

Sys_Set_CRC_Config

void Sys_Set_CRC_Config(CRC_Type * crc, uint32_t config)

 

Configure the CRC generator type, endianness of the input data, and standard vs non-standard CRC behavior.

 

Location: crc.h:52

 

Parameters

Direction Name Description

in

crc

Pointer to the CRC instance

in

config

CRC generator configuration; use CRC_[CCITT | 32], CRC_[BIG | LITTLE]_ENDIAN, CRC_BIT_ORDER_[STANDARD | NON_STANDARD], CRC_FINAL_REVERSE_[STANDARD | NON_STANDARD], and CRC_FINAL_XOR_[STANDARD | NON_STANDARD]

 

Assumptions

Note that D_CRC supports only CRC_CCITT mode, hence no configuration is applied for this instance.

 

Example Code for Sys_Set_CRC_Config

    // Configure CRC block to CRC-32 (IEEE 802.3) algorithm,

    // using little endian and non-standard (opposite) bit order

    Sys_Set_CRC_Config(CRC, CRC_32 | CRC_LITTLE_ENDIAN |

                       CRC_BIT_ORDER_NON_STANDARD);

 

Sys_CRC_32InitValue

void Sys_CRC_32InitValue(CRC_Type * crc)

 

Initialize CRC for CRC-32.

 

Location: crc.h:68

 

Parameters

Direction Name Description

in

crc

Pointer to the CRC instance

 

Assumptions

Note that D_CRC supports only CRC_CCITT mode, hence no configuration is applied for this instance.

 

Example Code for Sys_CRC_32InitValue

    // Initialize the CRC block for CRC-32

    Sys_CRC_32InitValue(CRC);

 

Sys_CRC_CCITTInitValue

void Sys_CRC_CCITTInitValue(CRC_Type * crc)

 

Initialize CRC for CRC-CCITT.

 

Location: crc.h:83

 

Parameters

Direction Name Description

in

crc

Pointer to the CRC instance

 

Assumptions

CRC is configured to work in CRC-CCITT mode.

 

Example Code for Sys_CRC_CCITTInitValue

    // Initialize the CRC block for CRC-CCITT

    Sys_CRC_CCITTInitValue(CRC);

 

Sys_CRC_GetCurrentValue

uint32_t Sys_CRC_GetCurrentValue(const CRC_Type * crc)

 

Retrieve current value from CRC.

 

Location: crc.h:95

 

Parameters

Direction Name Description

in

crc

Pointer to the CRC instance

 


Return


Current CRC value.

 

 

Example Code for Sys_CRC_GetCurrentValue

    // Retrieve current value from the CRC block

    value = Sys_CRC_GetCurrentValue(CRC);

 

Sys_CRC_GetFinalValue

uint32_t Sys_CRC_GetFinalValue(const CRC_Type * crc)

 

Initialize final CRC value.

 

Location: crc.h:111

 

Parameters

Direction Name Description

in

crc

Pointer to the CRC instance

 


Return


CRC final value.

 

Assumptions

D_CRC only supports CRC-CCITT mode. Use Sys_CRC_GetCurrentValue instead. Returns initial value of CRC if D_CRC is passed or any other unknown instance.

 

Example Code for Sys_CRC_GetFinalValue

    // Retrieve final value from the CRC block

    Sys_CRC_GetFinalValue(CRC);

 

Sys_CRC_Add

void Sys_CRC_Add(CRC_Type * crc, uint32_t data, uint32_t size)

 

Add data to the current CRC calculation, based on size.

 

Location: crc.h:138

 

Parameters

Direction Name Description

in

crc

Pointer to the CRC instance

in

data

Data to add

in

size

Size of data to add, 1, 8, 16, 24, 32 are valid.

 

 

Example Code for Sys_CRC_Add

    // Add 8 bits of data to the current CRC block

    Sys_CRC_Add(CRC, 0xF1, 8);