1.3.8.16 1.4.6.16 1.5.7.16 1.6.6.16 1.7.7.16 1.29.8.16 1.30.5.16 1.31.5.16 1.32.8.16 1.33.5.16 1.37.5.16 1.38.6.16 1.39.5.16 1.40.6.16 DMAC_CRCCalculate Function

C

void DMAC_CRCCalculate(void *buffer, uint32_t length, DMAC_CRC_SETUP CRCSetup)

Summary

Function to calculate CRC using I/O Interface

Description

It Sets the CRC Engine in IO mode to get the data using the CPU which will be written in CRCDATAIN register. It internally calculates the Beat Size to be used based on the buffer length.

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

DMAC_CRCRead() function can also be used to read the Generated CRC value.

Parameters

Param Description
buffer Buffer on which the CRC has to be computed
length Size of the buffer in bytes.
DMAC_CRC_SETUP crcSetup parameter holding the crc setup information

Returns

- crc - Generated crc value

Example

#define DMAC_TRANSFER_SIZE 9

const uint8_t srcBuffer[DMAC_TRANSFER_SIZE] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
uint8_t CACHE_ALIGN dstBuffer[DMAC_TRANSFER_SIZE] = {0};
    
    uint32_t io_crc_32 = 0;
DMAC_CRC_SETUP crcSetup = {0};
    
    crcSetup.polynomial_type = DMAC_CRC_TYPE_32;
    crcSetup.seed = 0xFFFFFFFF;
    
    io_crc_32 = DMAC_CRCCalculate((void *)srcBuffer, DMAC_TRANSFER_SIZE, CRCSetup);
    

Remarks

None