mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Mon Oct 02 15:33:19 2017 +0100
Revision:
174:b96e65c34a4d
This updates the lib to the mbed lib v 152

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 174:b96e65c34a4d 1 /**************************************************************************//**
AnnaBridge 174:b96e65c34a4d 2 * @file crc.h
AnnaBridge 174:b96e65c34a4d 3 * @version V1.00
AnnaBridge 174:b96e65c34a4d 4 * $Revision: 2 $
AnnaBridge 174:b96e65c34a4d 5 * $Date: 15/06/10 4:50p $
AnnaBridge 174:b96e65c34a4d 6 * @brief Nano100 series CRC driver header file
AnnaBridge 174:b96e65c34a4d 7 *
AnnaBridge 174:b96e65c34a4d 8 * @note
AnnaBridge 174:b96e65c34a4d 9 * Copyright (C) 2013 Nuvoton Technology Corp. All rights reserved.
AnnaBridge 174:b96e65c34a4d 10 *****************************************************************************/
AnnaBridge 174:b96e65c34a4d 11 #ifndef __CRC_H__
AnnaBridge 174:b96e65c34a4d 12 #define __CRC_H__
AnnaBridge 174:b96e65c34a4d 13
AnnaBridge 174:b96e65c34a4d 14 #ifdef __cplusplus
AnnaBridge 174:b96e65c34a4d 15 extern "C"
AnnaBridge 174:b96e65c34a4d 16 {
AnnaBridge 174:b96e65c34a4d 17 #endif
AnnaBridge 174:b96e65c34a4d 18
AnnaBridge 174:b96e65c34a4d 19
AnnaBridge 174:b96e65c34a4d 20 /** @addtogroup NANO100_Device_Driver NANO100 Device Driver
AnnaBridge 174:b96e65c34a4d 21 @{
AnnaBridge 174:b96e65c34a4d 22 */
AnnaBridge 174:b96e65c34a4d 23
AnnaBridge 174:b96e65c34a4d 24 /** @addtogroup NANO100_CRC_Driver CRC Driver
AnnaBridge 174:b96e65c34a4d 25 @{
AnnaBridge 174:b96e65c34a4d 26 */
AnnaBridge 174:b96e65c34a4d 27
AnnaBridge 174:b96e65c34a4d 28 /** @addtogroup NANO100_CRC_EXPORTED_CONSTANTS CRC Exported Constants
AnnaBridge 174:b96e65c34a4d 29 @{
AnnaBridge 174:b96e65c34a4d 30 */
AnnaBridge 174:b96e65c34a4d 31
AnnaBridge 174:b96e65c34a4d 32 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 174:b96e65c34a4d 33 /* CRC Polynomial Mode Constant Definitions */
AnnaBridge 174:b96e65c34a4d 34 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 174:b96e65c34a4d 35 #define CRC_CCITT 0x00000000UL /*!<CRC Polynomial Mode - CCITT */
AnnaBridge 174:b96e65c34a4d 36 #define CRC_8 0x40000000UL /*!<CRC Polynomial Mode - CRC8 */
AnnaBridge 174:b96e65c34a4d 37 #define CRC_16 0x80000000UL /*!<CRC Polynomial Mode - CRC16 */
AnnaBridge 174:b96e65c34a4d 38 #define CRC_32 0xC0000000UL /*!<CRC Polynomial Mode - CRC32 */
AnnaBridge 174:b96e65c34a4d 39
AnnaBridge 174:b96e65c34a4d 40 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 174:b96e65c34a4d 41 /* Checksum, Write data Constant Definitions */
AnnaBridge 174:b96e65c34a4d 42 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 174:b96e65c34a4d 43 #define CRC_CHECKSUM_COM 0x08000000UL /*!<CRC Checksum Complement */
AnnaBridge 174:b96e65c34a4d 44 #define CRC_CHECKSUM_RVS 0x02000000UL /*!<CRC Checksum Reverse */
AnnaBridge 174:b96e65c34a4d 45 #define CRC_WDATA_COM 0x04000000UL /*!<CRC Write Data Complement */
AnnaBridge 174:b96e65c34a4d 46 #define CRC_WDATA_RVS 0x01000000UL /*!<CRC Write Data Reverse */
AnnaBridge 174:b96e65c34a4d 47
AnnaBridge 174:b96e65c34a4d 48 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 174:b96e65c34a4d 49 /* CPU Write Data Length Constant Definitions */
AnnaBridge 174:b96e65c34a4d 50 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 174:b96e65c34a4d 51 #define CRC_CPU_WDATA_8 0x00000000UL /*!<CRC 8-bit CPU Write Data */
AnnaBridge 174:b96e65c34a4d 52 #define CRC_CPU_WDATA_16 0x10000000UL /*!<CRC 16-bit CPU Write Data */
AnnaBridge 174:b96e65c34a4d 53 #define CRC_CPU_WDATA_32 0x20000000UL /*!<CRC 32-bit CPU Write Data */
AnnaBridge 174:b96e65c34a4d 54
AnnaBridge 174:b96e65c34a4d 55
AnnaBridge 174:b96e65c34a4d 56 /*@}*/ /* end of group NANO100_CRC_EXPORTED_CONSTANTS */
AnnaBridge 174:b96e65c34a4d 57
AnnaBridge 174:b96e65c34a4d 58 /** @addtogroup NANO100_CRC_EXPORTED_FUNCTIONS CRC Exported Functions
AnnaBridge 174:b96e65c34a4d 59 @{
AnnaBridge 174:b96e65c34a4d 60 */
AnnaBridge 174:b96e65c34a4d 61
AnnaBridge 174:b96e65c34a4d 62 /**
AnnaBridge 174:b96e65c34a4d 63 * @brief Enable CRC Interrupt
AnnaBridge 174:b96e65c34a4d 64 *
AnnaBridge 174:b96e65c34a4d 65 * @param[in] u32Mask Interrupt mask
AnnaBridge 174:b96e65c34a4d 66 *
AnnaBridge 174:b96e65c34a4d 67 * @return None
AnnaBridge 174:b96e65c34a4d 68 *
AnnaBridge 174:b96e65c34a4d 69 * @details This macro enable the interrupts.
AnnaBridge 174:b96e65c34a4d 70 */
AnnaBridge 174:b96e65c34a4d 71 #define CRC_ENABLE_INT(u32Mask) (PDMACRC->DMAIER |= (u32Mask))
AnnaBridge 174:b96e65c34a4d 72
AnnaBridge 174:b96e65c34a4d 73 /**
AnnaBridge 174:b96e65c34a4d 74 * @brief Disable CRC Interrupt
AnnaBridge 174:b96e65c34a4d 75 *
AnnaBridge 174:b96e65c34a4d 76 * @param[in] u32Mask Interrupt mask
AnnaBridge 174:b96e65c34a4d 77 *
AnnaBridge 174:b96e65c34a4d 78 * @return None
AnnaBridge 174:b96e65c34a4d 79 *
AnnaBridge 174:b96e65c34a4d 80 * @details This macro disable the interrupts.
AnnaBridge 174:b96e65c34a4d 81 */
AnnaBridge 174:b96e65c34a4d 82 #define CRC_DISABLE_INT(u32Mask) (PDMACRC->DMAIER &= ~(u32Mask))
AnnaBridge 174:b96e65c34a4d 83
AnnaBridge 174:b96e65c34a4d 84 /**
AnnaBridge 174:b96e65c34a4d 85 * @brief Get CRC Interrupt Flag
AnnaBridge 174:b96e65c34a4d 86 *
AnnaBridge 174:b96e65c34a4d 87 * @param[in] None
AnnaBridge 174:b96e65c34a4d 88 *
AnnaBridge 174:b96e65c34a4d 89 * @return Interrupt Flag
AnnaBridge 174:b96e65c34a4d 90 *
AnnaBridge 174:b96e65c34a4d 91 * @details This macro gets the interrupt flag.
AnnaBridge 174:b96e65c34a4d 92 */
AnnaBridge 174:b96e65c34a4d 93 #define CRC_GET_INT_FLAG() ((uint32_t)(PDMACRC->DMAISR))
AnnaBridge 174:b96e65c34a4d 94
AnnaBridge 174:b96e65c34a4d 95 /**
AnnaBridge 174:b96e65c34a4d 96 * @brief Clear CRC Interrupt Flag
AnnaBridge 174:b96e65c34a4d 97 *
AnnaBridge 174:b96e65c34a4d 98 * @param[in] u32Mask Interrupt mask
AnnaBridge 174:b96e65c34a4d 99 *
AnnaBridge 174:b96e65c34a4d 100 * @return None
AnnaBridge 174:b96e65c34a4d 101 *
AnnaBridge 174:b96e65c34a4d 102 * @details This macro clear the interrupt flag.
AnnaBridge 174:b96e65c34a4d 103 */
AnnaBridge 174:b96e65c34a4d 104 #define CRC_CLR_INT_FLAG(u32Mask) (PDMACRC->DMAISR |= (u32Mask))
AnnaBridge 174:b96e65c34a4d 105
AnnaBridge 174:b96e65c34a4d 106 /**
AnnaBridge 174:b96e65c34a4d 107 * @brief Set CRC seed value
AnnaBridge 174:b96e65c34a4d 108 *
AnnaBridge 174:b96e65c34a4d 109 * @param[in] u32Seed Seed value
AnnaBridge 174:b96e65c34a4d 110 *
AnnaBridge 174:b96e65c34a4d 111 * @return None
AnnaBridge 174:b96e65c34a4d 112 *
AnnaBridge 174:b96e65c34a4d 113 * @details This macro set seed value.
AnnaBridge 174:b96e65c34a4d 114 */
AnnaBridge 174:b96e65c34a4d 115 #define CRC_SET_SEED(u32Seed) { PDMACRC->SEED = (u32Seed); PDMACRC->CTL |= DMA_CRC_CTL_CRC_RST_Msk; }
AnnaBridge 174:b96e65c34a4d 116
AnnaBridge 174:b96e65c34a4d 117 /**
AnnaBridge 174:b96e65c34a4d 118 * @brief Get CRC Seed value
AnnaBridge 174:b96e65c34a4d 119 *
AnnaBridge 174:b96e65c34a4d 120 * @param[in] None
AnnaBridge 174:b96e65c34a4d 121 *
AnnaBridge 174:b96e65c34a4d 122 * @return Seed Value
AnnaBridge 174:b96e65c34a4d 123 *
AnnaBridge 174:b96e65c34a4d 124 * @details This macro gets the seed value.
AnnaBridge 174:b96e65c34a4d 125 */
AnnaBridge 174:b96e65c34a4d 126 #define CRC_GET_SEED() ((uint32_t)(PDMACRC->SEED))
AnnaBridge 174:b96e65c34a4d 127
AnnaBridge 174:b96e65c34a4d 128 /**
AnnaBridge 174:b96e65c34a4d 129 * @brief CRC write data
AnnaBridge 174:b96e65c34a4d 130 *
AnnaBridge 174:b96e65c34a4d 131 * @param[in] u32Data write data
AnnaBridge 174:b96e65c34a4d 132 *
AnnaBridge 174:b96e65c34a4d 133 * @return None
AnnaBridge 174:b96e65c34a4d 134 *
AnnaBridge 174:b96e65c34a4d 135 * @details This macro write CRC data.
AnnaBridge 174:b96e65c34a4d 136 */
AnnaBridge 174:b96e65c34a4d 137 #define CRC_WRITE_DATA(u32Data) (PDMACRC->WDATA = (u32Data))
AnnaBridge 174:b96e65c34a4d 138
AnnaBridge 174:b96e65c34a4d 139
AnnaBridge 174:b96e65c34a4d 140 /*********************************************************************/
AnnaBridge 174:b96e65c34a4d 141 void CRC_Open(uint32_t u32Mode, uint32_t u32Attribute, uint32_t u32Seed, uint32_t u32DataLen);
AnnaBridge 174:b96e65c34a4d 142 void CRC_StartDMATransfer(uint32_t u32SrcAddr, uint32_t u32ByteCount);
AnnaBridge 174:b96e65c34a4d 143 uint32_t CRC_GetChecksum(void);
AnnaBridge 174:b96e65c34a4d 144
AnnaBridge 174:b96e65c34a4d 145
AnnaBridge 174:b96e65c34a4d 146 /*@}*/ /* end of group NANO100_CRC_EXPORTED_FUNCTIONS */
AnnaBridge 174:b96e65c34a4d 147
AnnaBridge 174:b96e65c34a4d 148 /*@}*/ /* end of group NANO100_CRC_Driver */
AnnaBridge 174:b96e65c34a4d 149
AnnaBridge 174:b96e65c34a4d 150 /*@}*/ /* end of group NANO100_Device_Driver */
AnnaBridge 174:b96e65c34a4d 151
AnnaBridge 174:b96e65c34a4d 152 #ifdef __cplusplus
AnnaBridge 174:b96e65c34a4d 153 }
AnnaBridge 174:b96e65c34a4d 154 #endif
AnnaBridge 174:b96e65c34a4d 155
AnnaBridge 174:b96e65c34a4d 156 #endif //__CRC_H__
AnnaBridge 174:b96e65c34a4d 157
AnnaBridge 174:b96e65c34a4d 158 /*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/