]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Nuvoton_Code/StdDriver/inc/crc.h
Add Cortex M23 GCC and IAR ports. Add demo projects for Nuvoton NuMaker-PFM-2351.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC / Nuvoton_Code / StdDriver / inc / crc.h
diff --git a/FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Nuvoton_Code/StdDriver/inc/crc.h b/FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Nuvoton_Code/StdDriver/inc/crc.h
new file mode 100644 (file)
index 0000000..704b727
--- /dev/null
@@ -0,0 +1,115 @@
+/**************************************************************************//**\r
+ * @file     crc.h\r
+ * @version  V3.00\r
+ * @brief    Cyclic Redundancy Check(CRC) driver header file\r
+ *\r
+ * @copyright (C) 2016 Nuvoton Technology Corp. All rights reserved.\r
+ *****************************************************************************/\r
+#ifndef __CRC_H__\r
+#define __CRC_H__\r
+\r
+#ifdef __cplusplus\r
+extern "C"\r
+{\r
+#endif\r
+\r
+\r
+/** @addtogroup Standard_Driver Standard Driver\r
+  @{\r
+*/\r
+\r
+/** @addtogroup CRC_Driver CRC Driver\r
+  @{\r
+*/\r
+\r
+/** @addtogroup CRC_EXPORTED_CONSTANTS CRC Exported Constants\r
+  @{\r
+*/\r
+/*---------------------------------------------------------------------------------------------------------*/\r
+/*  CRC Polynomial Mode Constant Definitions                                                               */\r
+/*---------------------------------------------------------------------------------------------------------*/\r
+#define CRC_CCITT           (0UL << CRC_CTL_CRCMODE_Pos) /*!<CRC Polynomial Mode - CCITT \hideinitializer */\r
+#define CRC_8               (1UL << CRC_CTL_CRCMODE_Pos) /*!<CRC Polynomial Mode - CRC8 \hideinitializer */\r
+#define CRC_16              (2UL << CRC_CTL_CRCMODE_Pos) /*!<CRC Polynomial Mode - CRC16 \hideinitializer */\r
+#define CRC_32              (3UL << CRC_CTL_CRCMODE_Pos) /*!<CRC Polynomial Mode - CRC32 \hideinitializer */\r
+\r
+/*---------------------------------------------------------------------------------------------------------*/\r
+/*  Checksum, Write data Constant Definitions                                                              */\r
+/*---------------------------------------------------------------------------------------------------------*/\r
+#define CRC_CHECKSUM_COM    (CRC_CTL_CHKSFMT_Msk)       /*!<CRC Checksum Complement \hideinitializer */\r
+#define CRC_CHECKSUM_RVS    (CRC_CTL_CHKSREV_Msk)       /*!<CRC Checksum Reverse \hideinitializer */\r
+#define CRC_WDATA_COM       (CRC_CTL_DATFMT_Msk)        /*!<CRC Write Data Complement \hideinitializer */\r
+#define CRC_WDATA_RVS       (CRC_CTL_DATREV_Msk)        /*!<CRC Write Data Reverse \hideinitializer */\r
+\r
+/*---------------------------------------------------------------------------------------------------------*/\r
+/*  CPU Write Data Length Constant Definitions                                                             */\r
+/*---------------------------------------------------------------------------------------------------------*/\r
+#define CRC_CPU_WDATA_8     (0UL << CRC_CTL_DATLEN_Pos) /*!<CRC CPU Write Data length is 8-bit \hideinitializer */\r
+#define CRC_CPU_WDATA_16    (1UL << CRC_CTL_DATLEN_Pos) /*!<CRC CPU Write Data length is 16-bit \hideinitializer */\r
+#define CRC_CPU_WDATA_32    (2UL << CRC_CTL_DATLEN_Pos) /*!<CRC CPU Write Data length is 32-bit \hideinitializer */\r
+\r
+/*@}*/ /* end of group CRC_EXPORTED_CONSTANTS */\r
+\r
+\r
+/** @addtogroup CRC_EXPORTED_FUNCTIONS CRC Exported Functions\r
+  @{\r
+*/\r
+\r
+/**\r
+  * @brief      Set CRC Seed Value\r
+  *\r
+  * @param[in]  crc         The pointer of CRC module.\r
+  * @param[in]  u32Seed     Seed value\r
+  *\r
+  * @return     None\r
+  *\r
+  * @details    This macro is used to set CRC seed value.\r
+  *\r
+  * @note       User must to perform CRC_CHKSINIT(CRC_CTL[1] CRC Engine Reset) to reload the new seed value\r
+  *             to CRC controller.\r
+  * \hideinitializer\r
+  */\r
+#define CRC_SET_SEED(crc, u32Seed)          do{ (crc)->SEED = (u32Seed); (crc)->CTL |= CRC_CTL_CHKSINIT_Msk; }while(0)\r
+\r
+/**\r
+  * @brief      Get CRC Seed Value\r
+  *\r
+  * @param[in]  crc         The pointer of CRC module.\r
+  *\r
+  * @return     CRC seed value\r
+  *\r
+  * @details    This macro gets the current CRC seed value.\r
+ * \hideinitializer\r
+  */\r
+#define CRC_GET_SEED(crc)                   ((crc)->SEED)\r
+\r
+/**\r
+  * @brief      CRC Write Data\r
+  *\r
+  * @param[in]  crc         The pointer of CRC module.\r
+  * @param[in]  u32Data     Write data\r
+  *\r
+  * @return     None\r
+  *\r
+  * @details    User can write data directly to CRC Write Data Register(CRC_DAT) by this macro to perform CRC operation.\r
+ * \hideinitializer\r
+  */\r
+#define CRC_WRITE_DATA(crc, u32Data)        ((crc)->DAT = (u32Data))\r
+\r
+\r
+void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen);\r
+uint32_t CRC_GetChecksum(void);\r
+\r
+/*@}*/ /* end of group CRC_EXPORTED_FUNCTIONS */\r
+\r
+/*@}*/ /* end of group CRC_Driver */\r
+\r
+/*@}*/ /* end of group Standard_Driver */\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* __CRC_H__ */\r
+\r
+/*** (C) COPYRIGHT 2016 Nuvoton Technology Corp. ***/\r