1.14.8.2 CRC_CRCCalculate Function

C

void CRC_CRCCalculate

Summary

Function to calculate CRC

Description

It first configures the CRC engine data Width to 8-bit mode and then the initial seed value passed as argument. The user data from buffer will then be written in CRCDAT register.

This function returns the final CRC value once the computation is done

This function can be called repeatedly for multiple blocks of memory/data by using previously generated CRC value as seed.

Parameters

Param Description
buffer Buffer on which the CRC has to be computed
length Size of the buffer in bytes.
seed CRC initial value (seed). It should be in direct form

Returns

crc - Generated crc value

Example

#define BUFFER_SIZE 9

const uint8_t srcBuffer[BUFFER_SIZE] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
    
CRC_SETUP crcSetup = {0};

crcSetup.reverse_crc_input = true;
crcSetup.polynomial_length = 32;
crcSetup.polynomial = 0x04C11DB7;
crcSetup.reverse_crc_output = true;
crcSetup.final_xor_value = 0xFFFFFFFF;

CRC_CRCSetup(crcSetup);

// Expected CRC32 with above configurations and Input String - 0xCBF43926

crc_32 = CRC_CRCCalculate((void *)srcBuffer, BUFFER_SIZE, 0xFFFFFFFF);

Remarks

None