NANO103 BSP V3.01.004
The Board Support Package for Nano103 Series
crc.c
Go to the documentation of this file.
1/**************************************************************************/
12#include "Nano103.h"
13
14
15
41void 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
60void CRC_StartDMATransfer(uint32_t u32SrcAddr, uint32_t u32ByteCount)
61{
62 PDMACRC->DMASA = u32SrcAddr;
63 PDMACRC->DMABCNT = u32ByteCount;
65}
66
76uint32_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. ***/
NANO103 peripheral access layer header file. This file contains all the peripheral register's definit...
#define DMA_GCR_GCTL_CKENCRC_Msk
Definition: Nano103.h:7462
#define DMA_CRC_CTL_CRCRST_Msk
Definition: Nano103.h:7386
#define DMA_CRC_CTL_CRCMODE_Msk
Definition: Nano103.h:7407
#define DMA_CRC_CTL_CRCEN_Msk
Definition: Nano103.h:7383
#define DMA_CRC_CTL_TRIGEN_Msk
Definition: Nano103.h:7389
#define CRC_CCITT
Definition: crc.h:36
#define CRC_16
Definition: crc.h:38
#define CRC_8
Definition: crc.h:37
#define CRC_32
Definition: crc.h:39
void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen)
CRC Open.
Definition: crc.c:41
uint32_t CRC_GetChecksum(void)
Get CRC Checksum.
Definition: crc.c:76
void CRC_StartDMATransfer(uint32_t u32SrcAddr, uint32_t u32ByteCount)
CRC Start DMA transfer.
Definition: crc.c:60
#define PDMACRC
Pointer to PDMA CRC register structure.
Definition: Nano103.h:13814
#define PDMAGCR
Pointer to PDMA global control register structure.
Definition: Nano103.h:13815