M4521_BSP V3.02.000
The Board Support Package for M4521
crc.c
Go to the documentation of this file.
1/**************************************************************************/
12#include "M4521.h"
13
14
51void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
52{
53 CRC->SEED = u32Seed;
54 CRC->CTL = u32Mode | u32Attribute | u32DataLen | CRC_CTL_CRCEN_Msk;
55
56 /* Setting CRCRST bit will reload the initial seed value(CRC_SEED register) to CRC controller */
57 CRC->CTL |= CRC_CTL_CRCRST_Msk;
58}
59
69uint32_t CRC_GetChecksum(void)
70{
71 switch(CRC->CTL & CRC_CTL_CRCMODE_Msk)
72 {
73 case CRC_CCITT:
74 case CRC_16:
75 return (CRC->CHECKSUM & 0xFFFF);
76
77 case CRC_32:
78 return (CRC->CHECKSUM);
79
80 case CRC_8:
81 return (CRC->CHECKSUM & 0xFF);
82
83 default:
84 return 0;
85 }
86}
87 /* end of group CRC_EXPORTED_FUNCTIONS */
89 /* end of group CRC_Driver */
91 /* end of group Standard_Driver */
93
94/*** (C) COPYRIGHT 2022 Nuvoton Technology Corp. ***/
#define CRC_CTL_CRCRST_Msk
Definition: M4521.h:1830
#define CRC_CTL_CRCEN_Msk
Definition: M4521.h:1827
#define CRC_CTL_CRCMODE_Msk
Definition: M4521.h:1848
#define CRC_CCITT
Definition: crc.h:35
#define CRC_16
Definition: crc.h:37
#define CRC_8
Definition: crc.h:36
#define CRC_32
Definition: crc.h:38
void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
CRC Open.
Definition: crc.c:51
uint32_t CRC_GetChecksum(void)
Get CRC Checksum.
Definition: crc.c:69
#define CRC
Definition: M4521.h:13834