/**************************************************************************//** * @file crc.h * @version V3.00 * $Revision: 6 $ * $Date: 15/05/04 3:58p $ * @brief CRC driver header file * * @note * SPDX-License-Identifier: Apache-2.0 * Copyright (C) 2013 Nuvoton Technology Corp. All rights reserved. *****************************************************************************/ #ifndef __CRC_H__ #define __CRC_H__ #ifdef __cplusplus extern "C" { #endif /** @addtogroup Standard_Driver Standard Driver @{ */ /** @addtogroup CRC_Driver CRC Driver @{ */ /** @addtogroup CRC_EXPORTED_CONSTANTS CRC Exported Constants @{ */ /*---------------------------------------------------------------------------------------------------------*/ /* CRC Polynomial Mode Constant Definitions */ /*---------------------------------------------------------------------------------------------------------*/ #define CRC_CCITT 0x00000000UL /*!DMAIER |= (u32Mask)) /** * @brief Disable CRC Interrupt * * @param[in] u32Mask Interrupt mask * * @return None * * @details This macro disable the specify CRC interrupt function by u32Mask setting. */ #define CRC_DISABLE_INT(u32Mask) (CRC->DMAIER &= ~(u32Mask)) /** * @brief Get CRC Interrupt Flag * * @param None * * @return Interrupt Flag Status * * @details This macro gets the CRC interrupt flags. */ #define CRC_GET_INT_FLAG() ((uint32_t)(CRC->DMAISR)) /** * @brief Clear CRC Interrupt Flag * * @param[in] u32Mask Interrupt mask * * @return None * * @details This macro clear the specify CRC interrupt flag by u32Mask setting. */ #define CRC_CLR_INT_FLAG(u32Mask) (CRC->DMAISR = (u32Mask)) /** * @brief Set CRC seed value * * @param[in] u32Seed Seed value * * @return None * * @details This macro set CRC seed value. * * @note User must to setting CRC_RST (CRC_CTL[1] CRC Engine Reset) to reload the new seed value * to CRC controller. */ #define CRC_SET_SEED(u32Seed) { CRC->SEED = (u32Seed); CRC->CTL |= CRC_CTL_CRC_RST_Msk; } /** * @brief Get CRC Seed value * * @param None * * @return Seed Value * * @details This macro gets the current CRC seed value. */ #define CRC_GET_SEED() ((uint32_t)(CRC->SEED)) /** * @brief CRC write data * * @param[in] u32Data write data * * @return None * * @details User can write data directly by this macro to perform CRC operation. */ #define CRC_WRITE_DATA(u32Data) (CRC->WDATA = (u32Data)) /*********************************************************************/ void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen); void CRC_StartDMATransfer(uint32_t u32SrcAddr, uint32_t u32ByteCount); uint32_t CRC_GetChecksum(void); /*@}*/ /* end of group CRC_EXPORTED_FUNCTIONS */ /*@}*/ /* end of group CRC_Driver */ /*@}*/ /* end of group Device_Driver */ #ifdef __cplusplus } #endif #endif //__CRC_H__ /*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/