1135 lines
71 KiB
C
1135 lines
71 KiB
C
/*
|
|
PDD layer implementation for peripheral type CRC
|
|
(C) 2013 Freescale, Inc. All rights reserved.
|
|
|
|
This file is static and it is generated from API-Factory
|
|
*/
|
|
|
|
#if !defined(CRC_PDD_H_)
|
|
#define CRC_PDD_H_
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- Test if supported MCU is active
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if !defined(MCU_ACTIVE)
|
|
// No MCU is active
|
|
#error CRC PDD library: No derivative is active. Place proper #include with PDD memory map before including PDD library.
|
|
#elif \
|
|
!defined(MCU_MK10D10) /* CRC */ && \
|
|
!defined(MCU_MK10D5) /* CRC */ && \
|
|
!defined(MCU_MK10D7) /* CRC */ && \
|
|
!defined(MCU_MK10F12) /* CRC */ && \
|
|
!defined(MCU_MK10DZ10) /* CRC */ && \
|
|
!defined(MCU_MK11D5) /* CRC */ && \
|
|
!defined(MCU_MK11D5WS) /* CRC */ && \
|
|
!defined(MCU_MK12D5) /* CRC */ && \
|
|
!defined(MCU_MK20D10) /* CRC */ && \
|
|
!defined(MCU_MK20D5) /* CRC */ && \
|
|
!defined(MCU_MK20D7) /* CRC */ && \
|
|
!defined(MCU_MK20F12) /* CRC */ && \
|
|
!defined(MCU_MK20DZ10) /* CRC */ && \
|
|
!defined(MCU_MK21D5) /* CRC */ && \
|
|
!defined(MCU_MK21D5WS) /* CRC */ && \
|
|
!defined(MCU_MK21F12) /* CRC */ && \
|
|
!defined(MCU_MK21F12WS) /* CRC */ && \
|
|
!defined(MCU_MK22D5) /* CRC */ && \
|
|
!defined(MCU_MK22F12810) /* CRC */ && \
|
|
!defined(MCU_MK22F12) /* CRC */ && \
|
|
!defined(MCU_MK22F25612) /* CRC */ && \
|
|
!defined(MCU_MK22F51212) /* CRC */ && \
|
|
!defined(MCU_MK24F12) /* CRC */ && \
|
|
!defined(MCU_MK30D10) /* CRC */ && \
|
|
!defined(MCU_MK30D7) /* CRC */ && \
|
|
!defined(MCU_MK30DZ10) /* CRC */ && \
|
|
!defined(MCU_MK40D10) /* CRC */ && \
|
|
!defined(MCU_MK40D7) /* CRC */ && \
|
|
!defined(MCU_MK40DZ10) /* CRC */ && \
|
|
!defined(MCU_MK40X256VMD100) /* CRC */ && \
|
|
!defined(MCU_MK50D10) /* CRC */ && \
|
|
!defined(MCU_MK50D7) /* CRC */ && \
|
|
!defined(MCU_MK50DZ10) /* CRC */ && \
|
|
!defined(MCU_MK51D10) /* CRC */ && \
|
|
!defined(MCU_MK51D7) /* CRC */ && \
|
|
!defined(MCU_MK51DZ10) /* CRC */ && \
|
|
!defined(MCU_MK52D10) /* CRC */ && \
|
|
!defined(MCU_MK52DZ10) /* CRC */ && \
|
|
!defined(MCU_MK53D10) /* CRC */ && \
|
|
!defined(MCU_MK53DZ10) /* CRC */ && \
|
|
!defined(MCU_MK60D10) /* CRC */ && \
|
|
!defined(MCU_MK60F12) /* CRC */ && \
|
|
!defined(MCU_MK60F15) /* CRC */ && \
|
|
!defined(MCU_MK60DZ10) /* CRC */ && \
|
|
!defined(MCU_MK60N512VMD100) /* CRC */ && \
|
|
!defined(MCU_MK61F12) /* CRC */ && \
|
|
!defined(MCU_MK61F15) /* CRC */ && \
|
|
!defined(MCU_MK61F12WS) /* CRC */ && \
|
|
!defined(MCU_MK61F15WS) /* CRC */ && \
|
|
!defined(MCU_MK63F12) /* CRC */ && \
|
|
!defined(MCU_MK63F12WS) /* CRC */ && \
|
|
!defined(MCU_MK64F12) /* CRC */ && \
|
|
!defined(MCU_MK65F18) /* CRC */ && \
|
|
!defined(MCU_MK65F18WS) /* CRC */ && \
|
|
!defined(MCU_MK66F18) /* CRC */ && \
|
|
!defined(MCU_MK70F12) /* CRC */ && \
|
|
!defined(MCU_MK70F15) /* CRC */ && \
|
|
!defined(MCU_MK70F12WS) /* CRC */ && \
|
|
!defined(MCU_MK70F15WS) /* CRC */ && \
|
|
!defined(MCU_MKE02Z2) /* CRC */ && \
|
|
!defined(MCU_MKE02Z4) /* CRC */ && \
|
|
!defined(MCU_SKEAZN642) /* CRC */ && \
|
|
!defined(MCU_MKE04Z1284) /* CRC */ && \
|
|
!defined(MCU_MKE04Z4) /* CRC */ && \
|
|
!defined(MCU_SKEAZN84) /* CRC */ && \
|
|
!defined(MCU_MKE06Z4) /* CRC */ && \
|
|
!defined(MCU_MKV10Z7) /* CRC */ && \
|
|
!defined(MCU_MKV31F12810) /* CRC */ && \
|
|
!defined(MCU_MKV31F25612) /* CRC */ && \
|
|
!defined(MCU_MKV31F51212) /* CRC */ && \
|
|
!defined(MCU_MKW21D5) /* CRC */ && \
|
|
!defined(MCU_MKW21D5WS) /* CRC */ && \
|
|
!defined(MCU_MKW22D5) /* CRC */ && \
|
|
!defined(MCU_MKW22D5WS) /* CRC */ && \
|
|
!defined(MCU_MKW24D5) /* CRC */ && \
|
|
!defined(MCU_MKW24D5WS) /* CRC */ && \
|
|
!defined(MCU_PCK20L4) /* CRC */ && \
|
|
!defined(MCU_SKEAZ1284) /* CRC */
|
|
// Unsupported MCU is active
|
|
#error CRC PDD library: Unsupported derivative is active.
|
|
#endif
|
|
|
|
#include "PDD_Types.h"
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- Method symbol definitions
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/* Computation parameters of CRC standards. */
|
|
#define CRC_PDD_NO_TRANSPOSE 0U /**< No transpose of data. */
|
|
#define CRC_PDD_BITS 0x1U /**< Bits are swapped. */
|
|
#define CRC_PDD_BITS_AND_BYTES 0x2U /**< Bytes and bits are swapped. */
|
|
#define CRC_PDD_BYTES 0x3U /**< Bytes are swapped. */
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- GetCRCDataRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Returns current CRC result from data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 32-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CRC, CRC_DATA
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* uint32 result = CRC_PDD_GetCRCDataRegister(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetCRCDataRegister(PeripheralBase) ( \
|
|
CRC_DATA_REG(PeripheralBase) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Returns current CRC result from data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 32-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CRC, CRC_DATA
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* uint32 result = CRC_PDD_GetCRCDataRegister(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetCRCDataRegister(PeripheralBase) ( \
|
|
CRC_CRC_REG(PeripheralBase) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- GetCRCDataHRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Returns upper 16bits of current CRC result from data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 16-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CRCH, CRC_DATAH
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* uint16 result = CRC_PDD_GetCRCDataHRegister(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetCRCDataHRegister(PeripheralBase) ( \
|
|
CRC_DATAH_REG(PeripheralBase) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Returns upper 16bits of current CRC result from data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 16-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CRCH, CRC_DATAH
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* uint16 result = CRC_PDD_GetCRCDataHRegister(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetCRCDataHRegister(PeripheralBase) ( \
|
|
CRC_CRCH_REG(PeripheralBase) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- GetCRCDataLRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Returns lower 16bits of current CRC result from data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 16-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CRCL, CRC_DATAL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* uint16 result = CRC_PDD_GetCRCDataLRegister(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetCRCDataLRegister(PeripheralBase) ( \
|
|
CRC_DATAL_REG(PeripheralBase) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Returns lower 16bits of current CRC result from data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 16-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CRCL, CRC_DATAL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* uint16 result = CRC_PDD_GetCRCDataLRegister(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetCRCDataLRegister(PeripheralBase) ( \
|
|
CRC_CRCL_REG(PeripheralBase) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRCDataRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Set CRC data register (4 bytes).
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data New data for CRC computation. This parameter is a 32-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRC, CRC_DATA
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCDataRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCDataRegister(PeripheralBase, Data) ( \
|
|
CRC_DATA_REG(PeripheralBase) = \
|
|
(uint32)(Data) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Set CRC data register (4 bytes).
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data New data for CRC computation. This parameter is a 32-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRC, CRC_DATA
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCDataRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCDataRegister(PeripheralBase, Data) ( \
|
|
CRC_CRC_REG(PeripheralBase) = \
|
|
(uint32)(Data) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRCDataLRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Set CRC data register (2 bytes).
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data New data for CRC computation. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCL, CRC_DATAL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCDataLRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCDataLRegister(PeripheralBase, Data) ( \
|
|
CRC_DATAL_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Set CRC data register (2 bytes).
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data New data for CRC computation. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCL, CRC_DATAL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCDataLRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCDataLRegister(PeripheralBase, Data) ( \
|
|
CRC_CRCL_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRCDataLLRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Set CRC data register (1 byte).
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data New data for CRC computation. This parameter is a 8-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCLL, CRC_DATALL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCDataLLRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCDataLLRegister(PeripheralBase, Data) ( \
|
|
CRC_DATALL_REG(PeripheralBase) = \
|
|
(uint8)(Data) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Set CRC data register (1 byte).
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data New data for CRC computation. This parameter is a 8-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCLL, CRC_DATALL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCDataLLRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCDataLLRegister(PeripheralBase, Data) ( \
|
|
CRC_CRCLL_REG(PeripheralBase) = \
|
|
(uint8)(Data) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetSeedHigh
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Set upper 16 bits of data register in seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Seed value. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCH, CRC_DATAH
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetSeedHigh(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetSeedHigh(PeripheralBase, Data) ( \
|
|
CRC_DATAH_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Set upper 16 bits of data register in seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Seed value. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCH, CRC_DATAH
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetSeedHigh(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetSeedHigh(PeripheralBase, Data) ( \
|
|
CRC_CRCH_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetSeedLow
|
|
---------------------------------------------------------------------------- */
|
|
|
|
#if ((defined(MCU_MK11D5)) || (defined(MCU_MK11D5WS)) || (defined(MCU_MK12D5)) || (defined(MCU_MK21D5)) || (defined(MCU_MK21D5WS)) || (defined(MCU_MK21F12)) || (defined(MCU_MK21F12WS)) || (defined(MCU_MK22D5)) || (defined(MCU_MK22F12)) || (defined(MCU_MK22F12810)) || (defined(MCU_MK22F25612)) || (defined(MCU_MK22F51212)) || (defined(MCU_MK24F12)) || (defined(MCU_MK63F12)) || (defined(MCU_MK63F12WS)) || (defined(MCU_MK64F12)) || (defined(MCU_MK65F18)) || (defined(MCU_MK65F18WS)) || (defined(MCU_MK66F18)) || (defined(MCU_MKE02Z2)) || (defined(MCU_MKE02Z4)) || (defined(MCU_MKE04Z1284)) || (defined(MCU_MKE04Z4)) || (defined(MCU_MKE06Z4)) || (defined(MCU_MKV10Z7)) || (defined(MCU_MKV31F12810)) || (defined(MCU_MKV31F25612)) || (defined(MCU_MKV31F51212)) || (defined(MCU_MKW21D5)) || (defined(MCU_MKW21D5WS)) || (defined(MCU_MKW22D5)) || (defined(MCU_MKW22D5WS)) || (defined(MCU_MKW24D5)) || (defined(MCU_MKW24D5WS)) || (defined(MCU_SKEAZ1284)) || (defined(MCU_SKEAZN642)) || (defined(MCU_SKEAZN84)))
|
|
/**
|
|
* @brief Set lower 16 bits of data register in seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Seed value. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCL, CRC_DATAL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetSeedLow(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetSeedLow(PeripheralBase, Data) ( \
|
|
CRC_DATAL_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
#else /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
/**
|
|
* @brief Set lower 16 bits of data register in seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Seed value. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CRCL, CRC_DATAL
|
|
* (depending on the peripheral).
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetSeedLow(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetSeedLow(PeripheralBase, Data) ( \
|
|
CRC_CRCL_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
#endif /* (defined(MCU_MK10D10)) || (defined(MCU_MK10D5)) || (defined(MCU_MK10D7)) || (defined(MCU_MK10DZ10)) || (defined(MCU_MK10F12)) || (defined(MCU_MK20D10)) || (defined(MCU_MK20D5)) || (defined(MCU_MK20D7)) || (defined(MCU_MK20DZ10)) || (defined(MCU_MK20F12)) || (defined(MCU_MK30D10)) || (defined(MCU_MK30D7)) || (defined(MCU_MK30DZ10)) || (defined(MCU_MK40D10)) || (defined(MCU_MK40D7)) || (defined(MCU_MK40DZ10)) || (defined(MCU_MK40X256VMD100)) || (defined(MCU_MK50D10)) || (defined(MCU_MK50D7)) || (defined(MCU_MK50DZ10)) || (defined(MCU_MK51D10)) || (defined(MCU_MK51D7)) || (defined(MCU_MK51DZ10)) || (defined(MCU_MK52D10)) || (defined(MCU_MK52DZ10)) || (defined(MCU_MK53D10)) || (defined(MCU_MK53DZ10)) || (defined(MCU_MK60D10)) || (defined(MCU_MK60DZ10)) || (defined(MCU_MK60F12)) || (defined(MCU_MK60F15)) || (defined(MCU_MK60N512VMD100)) || (defined(MCU_MK61F12)) || (defined(MCU_MK61F12WS)) || (defined(MCU_MK61F15)) || (defined(MCU_MK61F15WS)) || (defined(MCU_MK70F12)) || (defined(MCU_MK70F12WS)) || (defined(MCU_MK70F15)) || (defined(MCU_MK70F15WS)) || (defined(MCU_PCK20L4)) */
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetPolyHigh
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set upper 16 bits of polynomial register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Polynomial value. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_GPOLYH.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetPolyHigh(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetPolyHigh(PeripheralBase, Data) ( \
|
|
CRC_GPOLYH_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetPolyLow
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set lower 16 bits of polynomial register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Polynomial value. This parameter is a 16-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_GPOLYL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetPolyLow(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetPolyLow(PeripheralBase, Data) ( \
|
|
CRC_GPOLYL_REG(PeripheralBase) = \
|
|
(uint16)(Data) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRCControlRegister
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set CRC control register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Data Control register value. This parameter is a 32-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRCControlRegister(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRCControlRegister(PeripheralBase, Data) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(Data) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetSeedBit
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Enable seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetSeedBit(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetSeedBit(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) |= \
|
|
CRC_CTRL_WAS_MASK \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- ClearSeedBit
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Disable seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_ClearSeedBit(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_ClearSeedBit(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) &= \
|
|
(uint32)(~(uint32)CRC_CTRL_WAS_MASK) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetXorBit
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Enable result XORing with 0xFFFF or 0xFFFFFFFF.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetXorBit(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetXorBit(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) |= \
|
|
CRC_CTRL_FXOR_MASK \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- ClearXorBit
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Disable result XORing with 0xFFFF or 0xFFFFFFFF.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_ClearXorBit(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_ClearXorBit(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) &= \
|
|
(uint32)(~(uint32)CRC_CTRL_FXOR_MASK) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC32bit
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set CRC module for 32bit computation.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC32bit(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC32bit(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) |= \
|
|
CRC_CTRL_TCRC_MASK \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC16bit
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set CRC module for 16bit computation.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC16bit(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC16bit(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) &= \
|
|
(uint32)(~(uint32)CRC_CTRL_TCRC_MASK) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetInputTranspose
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set input data transposition type.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Type Input data transposition type. This parameter is a 2-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetInputTranspose(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetInputTranspose(PeripheralBase, Type) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(CRC_CTRL_REG(PeripheralBase) & (uint32)(~(uint32)CRC_CTRL_TOT_MASK))) | ( \
|
|
(uint32)((uint32)(Type) << CRC_CTRL_TOT_SHIFT))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetOutputTranspose
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set output data transposition type.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Type Output data transposition type. This parameter is a 2-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetOutputTranspose(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetOutputTranspose(PeripheralBase, Type) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(CRC_CTRL_REG(PeripheralBase) & (uint32)(~(uint32)CRC_CTRL_TOTR_MASK))) | ( \
|
|
(uint32)((uint32)(Type) << CRC_CTRL_TOTR_SHIFT))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- GetOutputTranspose
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Get output transpose settings.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 2-bit value. The value is cast to "uint8".
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* uint8 result = CRC_PDD_GetOutputTranspose(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetOutputTranspose(PeripheralBase) ( \
|
|
(uint8)(( \
|
|
(uint32)(CRC_CTRL_REG(PeripheralBase) & CRC_CTRL_TOTR_MASK)) >> ( \
|
|
CRC_CTRL_TOTR_SHIFT)) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- GetInputTranspose
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Get input transpose settings.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 2-bit value. The value is cast to "uint8".
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* uint8 result = CRC_PDD_GetInputTranspose(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_GetInputTranspose(PeripheralBase) ( \
|
|
(uint8)(( \
|
|
(uint32)(CRC_CTRL_REG(PeripheralBase) & CRC_CTRL_TOT_MASK)) >> ( \
|
|
CRC_CTRL_TOT_SHIFT)) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC_16
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set control register for CRC16 standard operation and starts seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC_16(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC_16(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
CRC_CTRL_REG(PeripheralBase)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TCRC_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_FXOR_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOT_MASK)) & ( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOTR_MASK))))))) | (( \
|
|
CRC_CTRL_WAS_MASK) | (( \
|
|
(uint32)((uint32)0x1U << CRC_CTRL_TOT_SHIFT)) | ( \
|
|
(uint32)((uint32)0x2U << CRC_CTRL_TOTR_SHIFT))))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC_32
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set control register for CRC32 standard operation and starts seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC_32(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC_32(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
CRC_CTRL_REG(PeripheralBase)) | (( \
|
|
CRC_CTRL_TCRC_MASK) | (( \
|
|
CRC_CTRL_WAS_MASK) | ( \
|
|
CRC_CTRL_FXOR_MASK))))) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOT_MASK)) & ( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOTR_MASK))))) | (( \
|
|
(uint32)((uint32)0x1U << CRC_CTRL_TOT_SHIFT)) | ( \
|
|
(uint32)((uint32)0x2U << CRC_CTRL_TOTR_SHIFT)))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC_CCITT
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set control register for CCITT standard operation and starts seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC_CCITT(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC_CCITT(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
CRC_CTRL_REG(PeripheralBase)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TCRC_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_FXOR_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOT_MASK)) & ( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOTR_MASK))))))) | ( \
|
|
CRC_CTRL_WAS_MASK)) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC_KERMIT
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set control register for KERMIT standard operation and starts seed
|
|
* mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC_KERMIT(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC_KERMIT(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
CRC_CTRL_REG(PeripheralBase)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TCRC_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_FXOR_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOT_MASK)) & ( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOTR_MASK))))))) | (( \
|
|
CRC_CTRL_WAS_MASK) | (( \
|
|
(uint32)((uint32)0x1U << CRC_CTRL_TOT_SHIFT)) | ( \
|
|
(uint32)((uint32)0x2U << CRC_CTRL_TOTR_SHIFT))))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC_DNP
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set control register for DNP standard operation and starts seed mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC_DNP(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC_DNP(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
CRC_CTRL_REG(PeripheralBase)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TCRC_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOT_MASK)) & ( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOTR_MASK)))))) | (( \
|
|
CRC_CTRL_WAS_MASK) | (( \
|
|
CRC_CTRL_FXOR_MASK) | (( \
|
|
(uint32)((uint32)0x1U << CRC_CTRL_TOT_SHIFT)) | ( \
|
|
(uint32)((uint32)0x2U << CRC_CTRL_TOTR_SHIFT)))))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- SetCRC_MODBUS16
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Set control register for MODBUS16 standard operation and starts seed
|
|
* mode.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_SetCRC_MODBUS16(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_SetCRC_MODBUS16(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(( \
|
|
(uint32)(( \
|
|
CRC_CTRL_REG(PeripheralBase)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TCRC_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_FXOR_MASK)) & (( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOT_MASK)) & ( \
|
|
(uint32)(~(uint32)CRC_CTRL_TOTR_MASK))))))) | (( \
|
|
CRC_CTRL_WAS_MASK) | (( \
|
|
(uint32)((uint32)0x1U << CRC_CTRL_TOT_SHIFT)) | ( \
|
|
(uint32)((uint32)0x2U << CRC_CTRL_TOTR_SHIFT))))) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- ReadDataReg
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Reads CRC data register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 32-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_DATA.
|
|
* @par Example:
|
|
* @code
|
|
* uint32 result = CRC_PDD_ReadDataReg(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_ReadDataReg(PeripheralBase) ( \
|
|
CRC_DATA_REG(PeripheralBase) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- WriteDataReg
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Writes new value specified by the Value parameter into CRC data
|
|
* register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Value Value to be written to the CRC data register. This parameter is
|
|
* a 32-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_DATA.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_WriteDataReg(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_WriteDataReg(PeripheralBase, Value) ( \
|
|
CRC_DATA_REG(PeripheralBase) = \
|
|
(uint32)(Value) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- ReadPolynomialReg
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Reads CRC polynomial register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 32-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_GPOLY.
|
|
* @par Example:
|
|
* @code
|
|
* uint32 result = CRC_PDD_ReadPolynomialReg(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_ReadPolynomialReg(PeripheralBase) ( \
|
|
CRC_GPOLY_REG(PeripheralBase) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- WritePolynomialReg
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Writes new value specified by the Value parameter into CRC polynomial
|
|
* register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Value Value to be written to the CRC polynomial register. This
|
|
* parameter is a 32-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_GPOLY.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_WritePolynomialReg(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_WritePolynomialReg(PeripheralBase, Value) ( \
|
|
CRC_GPOLY_REG(PeripheralBase) = \
|
|
(uint32)(Value) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- ReadControlReg
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Reads CRC control register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @return Returns a 32-bit value.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* uint32 result = CRC_PDD_ReadControlReg(<peripheral>_BASE_PTR);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_ReadControlReg(PeripheralBase) ( \
|
|
CRC_CTRL_REG(PeripheralBase) \
|
|
)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- WriteControlReg
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @brief Writes new value specified by the Value parameter into CRC control
|
|
* register.
|
|
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
|
|
* base address). You can use the constant defined in the registers
|
|
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
|
|
* the peripheral initialization component header file
|
|
* (<component_name>_DEVICE).
|
|
* @param Value Value to be written to the CRC control register. This parameter
|
|
* is a 32-bit value.
|
|
* @return Returns a value of void type.
|
|
* @remarks The macro accesses the following registers: CRC_CTRL.
|
|
* @par Example:
|
|
* @code
|
|
* CRC_PDD_WriteControlReg(<peripheral>_BASE_PTR, 1);
|
|
* @endcode
|
|
*/
|
|
#define CRC_PDD_WriteControlReg(PeripheralBase, Value) ( \
|
|
CRC_CTRL_REG(PeripheralBase) = \
|
|
(uint32)(Value) \
|
|
)
|
|
#endif /* #if defined(CRC_PDD_H_) */
|
|
|
|
/* CRC_PDD.h, eof. */
|