mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
targets/TARGET_NUVOTON/TARGET_NANO100/device/StdDriver/nano100_crc.h@174:b96e65c34a4d, 2017-10-02 (annotated)
- 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?
User | Revision | Line number | New 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. ***/ |