45 #if defined(FEATURE_CRC_DRIVER_SOFT_POLYNOMIAL)
46 #include "crc_hw_access.h"
47 #elif defined(FEATURE_CRC_DRIVER_HARD_POLYNOMIAL)
48 #include "crc_c55_hw_access.h"
73 CRC_Type * base = s_crcBase[instance];
94 CRC_Type * base = s_crcBase[instance];
117 CRC_Type * base = s_crcBase[instance];
123 CRC_SetSeedReg(base, seed);
127 CRC_SetDataReg(base, data);
130 return CRC_GetCrcResult(base);
148 CRC_Type * base = s_crcBase[instance];
154 CRC_SetSeedReg(base, seed);
157 CRC_SetDataLReg(base, data);
160 return CRC_GetCrcResult(base);
178 CRC_Type * base = s_crcBase[instance];
184 CRC_SetSeedReg(base, seed);
187 CRC_SetDataLLReg(base, data);
190 return CRC_GetCrcResult(base);
201 const uint8_t * data,
207 CRC_Type * base = s_crcBase[instance];
210 for (i = 0U; i < dataSize; i++)
212 CRC_SetDataLLReg(base, data[i]);
226 const CRC_Type * base = s_crcBase[instance];
229 return CRC_GetCrcResult(base);
244 CRC_Type * base = s_crcBase[instance];
246 #if defined(FEATURE_CRC_DRIVER_SOFT_POLYNOMIAL)
248 CRC_SetProtocolWidth(base, userConfigPtr->
crcWidth);
253 CRC_SetPolyReg(base, userConfigPtr->
polynomial);
259 CRC_SetSeedReg(base, userConfigPtr->
seed);
276 const CRC_Type *
const base = s_crcBase[instance];
278 #if defined(FEATURE_CRC_DRIVER_SOFT_POLYNOMIAL)
280 userConfigPtr->
crcWidth = CRC_GetProtocolWidth(base);
285 userConfigPtr->
polynomial = CRC_GetPolyReg(base);
291 userConfigPtr->
seed = CRC_GetDataReg(base);
307 #if defined(FEATURE_CRC_DRIVER_SOFT_POLYNOMIAL)
uint32_t CRC_DRV_GetCrc32(uint32_t instance, uint32_t data, bool newSeed, uint32_t seed)
Appends 32-bit data to the current CRC calculation and returns new result.
#define FEATURE_CRC_DEFAULT_READ_TRANSPOSE
status_t CRC_DRV_Init(uint32_t instance, const crc_user_config_t *userConfigPtr)
Initializes the CRC module.
status_t CRC_DRV_Configure(uint32_t instance, const crc_user_config_t *userConfigPtr)
Configures the CRC module from a user configuration structure.
#define FEATURE_CRC_DEFAULT_POLYNOMIAL
crc_transpose_t readTranspose
CRC configuration structure. Implements : crc_user_config_t_Class.
status_t CRC_DRV_GetConfig(uint32_t instance, crc_user_config_t *const userConfigPtr)
Get configures of the CRC module currently.
uint32_t CRC_DRV_GetCrc8(uint32_t instance, uint8_t data, bool newSeed, uint32_t seed)
Appends 8-bit data to the current CRC calculation and returns new result.
uint32_t CRC_DRV_GetCrc16(uint32_t instance, uint16_t data, bool newSeed, uint32_t seed)
Appends 16-bit data to the current CRC calculation and returns new result.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
#define FEATURE_CRC_DEFAULT_WRITE_TRANSPOSE
status_t CRC_DRV_Deinit(uint32_t instance)
Sets the default configuration.
status_t CRC_DRV_GetDefaultConfig(crc_user_config_t *const userConfigPtr)
Get default configures the CRC module for configuration structure.
crc_transpose_t writeTranspose
uint32_t CRC_DRV_GetCrcResult(uint32_t instance)
Returns the current result of the CRC calculation.
#define FEATURE_CRC_DEFAULT_SEED
static CRC_Type *const s_crcBase[]
Table of base addresses for CRC instances.
#define CRC_INSTANCE_COUNT
void CRC_DRV_WriteData(uint32_t instance, const uint8_t *data, uint32_t dataSize)
Appends a block of bytes to the current CRC calculation.
#define FEATURE_CRC_DEFAULT_WIDTH