Nano103 BSP  V3.01.002
The Board Support Package for Nano103 Series
crc.c
Go to the documentation of this file.
1 /**************************************************************************/
12 #include "Nano103.h"
13 
14 
15 
41 void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
42 {
44  PDMACRC->SEED = u32Seed;
45  PDMACRC->CTL = u32Mode | u32Attribute | u32DataLen | DMA_CRC_CTL_CRCEN_Msk;
46  /* When operated in CPU PIO mode, setting RST bit will reload the initial seed value (CRC_SEED register) */
48 }
49 
60 void CRC_StartDMATransfer(uint32_t u32SrcAddr, uint32_t u32ByteCount)
61 {
62  PDMACRC->DMASA = u32SrcAddr;
63  PDMACRC->DMABCNT = u32ByteCount;
65 }
66 
76 uint32_t CRC_GetChecksum(void)
77 {
78  switch (PDMACRC->CTL & DMA_CRC_CTL_CRCMODE_Msk)
79  {
80  case CRC_CCITT:
81  case CRC_16:
82  return (PDMACRC->CHECKSUM & 0xffff);
83 
84  case CRC_32:
85  return (PDMACRC->CHECKSUM);
86 
87  case CRC_8:
88  return (PDMACRC->CHECKSUM & 0xff);
89 
90  default:
91  return 0;
92  }
93 }
94 
95  /* end of group NANO103_CRC_EXPORTED_FUNCTIONS */
97  /* end of group NANO103_CRC_Driver */
99  /* end of group NANO103_Device_Driver */
101 
102 /*** (C) COPYRIGHT 2015 Nuvoton Technology Corp. ***/
#define DMA_CRC_CTL_CRCEN_Msk
Definition: Nano103.h:13566
#define CRC_CCITT
Definition: crc.h:36
#define CRC_8
Definition: crc.h:37
#define PDMACRC
Pointer to PDMA CRC register structure.
Definition: Nano103.h:24896
#define DMA_CRC_CTL_CRCMODE_Msk
Definition: Nano103.h:13590
#define CRC_16
Definition: crc.h:38
void CRC_StartDMATransfer(uint32_t u32SrcAddr, uint32_t u32ByteCount)
CRC Start DMA transfer.
Definition: crc.c:60
#define DMA_CRC_CTL_CRCRST_Msk
Definition: Nano103.h:13569
#define CRC_32
Definition: crc.h:39
#define PDMAGCR
Pointer to PDMA global control register structure.
Definition: Nano103.h:24897
void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
CRC Open.
Definition: crc.c:41
#define DMA_CRC_CTL_TRIGEN_Msk
Definition: Nano103.h:13572
NANO103 peripheral access layer header file. This file contains all the peripheral register's definit...
uint32_t CRC_GetChecksum(void)
Get CRC Checksum.
Definition: crc.c:76
#define DMA_GCR_GCTL_CKENCRC_Msk
Definition: Nano103.h:13645