MSPM0L111X Driver Library  2.06.00.05
Macros | Enumerations | Functions
dl_crcp.h File Reference

Detailed Description

Cyclic Redundancy Check with Configurable Polynomial (CRCP) Driver Library.


#include <stdbool.h>
#include <stdint.h>
#include <ti/devices/msp/msp.h>
#include <ti/driverlib/dl_common.h>
Include dependency graph for dl_crcp.h:

Go to the source code of this file.

Macros

#define DL_CRC_POLYNOMIAL_SIZE_16   DL_CRCP_POLYNOMIAL_SIZE_16
 Redirects to DL_CRCP_POLYNOMIAL_SIZE_16 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_POLYNOMIAL_SIZE_32   DL_CRCP_POLYNOMIAL_SIZE_32
 Redirects to DL_CRCP_POLYNOMIAL_SIZE_32 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_BIT_REVERSED   DL_CRCP_BIT_REVERSED
 Redirects to DL_CRCP_BIT_REVERSED for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_BIT_NOT_REVERSED   DL_CRCP_BIT_NOT_REVERSED
 Redirects to DL_CRCP_BIT_NOT_REVERSED for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_INPUT_ENDIANESS_LITTLE_ENDIAN   DL_CRCP_INPUT_ENDIANESS_LITTLE_ENDIAN
 Redirects to DL_CRCP_INPUT_ENDIANESS_LITTLE_ENDIAN for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_INPUT_ENDIANESS_BIG_ENDIAN   DL_CRCP_INPUT_ENDIANESS_BIG_ENDIAN
 Redirects to DL_CRCP_INPUT_ENDIANESS_BIG_ENDIAN for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_OUTPUT_BYTESWAP_ENABLED   DL_CRCP_OUTPUT_BYTESWAP_ENABLED
 Redirects to DL_CRCP_OUTPUT_BYTESWAP_ENABLED for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_OUTPUT_BYTESWAP_DISABLED   DL_CRCP_OUTPUT_BYTESWAP_DISABLED
 Redirects to DL_CRCP_OUTPUT_BYTESWAP_DISABLED for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_32_MPEG2   DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_32_Q   DL_CRCP_CRCPOLY_POLYNOMIAL_32_Q
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_32_Q for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_32_JAMCRC   DL_CRCP_CRCPOLY_POLYNOMIAL_32_JAMCRC
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_32_JAMCRC for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_32_XFER   DL_CRCP_CRCPOLY_POLYNOMIAL_32_XFER
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_32_XFER for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_32_MPEG2   DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_CCIT_ZERO   DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_ZERO
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_ZERO for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_ARC   DL_CRCP_CRCPOLY_POLYNOMIAL_16_ARC
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_ARC for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_AUG_CCIT   DL_CRCP_CRCPOLY_POLYNOMIAL_16_AUG_CCIT
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_AUG_CCIT for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_BUYPASS   DL_CRCP_CRCPOLY_POLYNOMIAL_16_BUYPASS
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_BUYPASS for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_CCIT_FALSE   DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_FALSE
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_FALSE for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_CDMA2000   DL_CRCP_CRCPOLY_POLYNOMIAL_16_CDMA2000
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_CDMA2000 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCPOLY_POLYNOMIAL_16_MODBUS   DL_CRCP_CRCPOLY_POLYNOMIAL_16_MODBUS
 Redirects to DL_CRCP_CRCPOLY_POLYNOMIAL_16_MODBUS for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_32_MPEG2   DL_CRCP_CRCSEED_SEED_32_MPEG2
 Redirects to DL_CRCP_CRCSEED_SEED_32_MPEG2 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_32_Q   DL_CRCP_CRCSEED_SEED_32_Q
 Redirects to DL_CRCP_CRCSEED_SEED_32_Q for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_32_JAMCRC   DL_CRCP_CRCSEED_SEED_32_JAMCRC
 Redirects to DL_CRCP_CRCSEED_SEED_32_JAMCRC for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_32_XFER   DL_CRCP_CRCSEED_SEED_32_XFER
 Redirects to DL_CRCP_CRCSEED_SEED_32_XFER for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_32_MPEG2   DL_CRCP_CRCSEED_SEED_32_MPEG2
 Redirects to DL_CRCP_CRCSEED_SEED_32_MPEG2 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_16_AUG_CCIT   DL_CRCP_CRCSEED_SEED_16_AUG_CCIT
 Redirects to DL_CRCP_CRCSEED_SEED_16_AUG_CCIT for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_16_BUYPASS   DL_CRCP_CRCSEED_SEED_16_BUYPASS
 Redirects to DL_CRCP_CRCSEED_SEED_16_BUYPASS for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_16_CCIT_FALSE   DL_CRCP_CRCSEED_SEED_16_CCIT_FALSE
 Redirects to DL_CRCP_CRCSEED_SEED_16_CCIT_FALSE for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_16_CDMA2000   DL_CRCP_CRCSEED_SEED_16_CDMA2000
 Redirects to DL_CRCP_CRCSEED_SEED_16_CDMA2000 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_CRCSEED_SEED_16_MODBUS   DL_CRCP_CRCSEED_SEED_16_MODBUS
 Redirects to DL_CRCP_CRCSEED_SEED_16_MODBUS for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_enablePower   DL_CRCP_enablePower
 Redirects to DL_CRCP_enablePower for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_isPowerEnabled   DL_CRCP_isPowerEnabled
 Redirects to DL_CRCP_isPowerEnabled for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_reset   DL_CRCP_reset
 Redirects to DL_CRCP_reset for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_isReset   DL_CRCP_isReset
 Redirects to DL_CRCP_isReset for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_init   DL_CRCP_init
 Redirects to DL_CRCP_init for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_setSeed16   DL_CRCP_setSeed16
 Redirects to DL_CRCP_setSeed16 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_setSeed32   DL_CRCP_setSeed32
 Redirects to DL_CRCP_setSeed32 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_feedData8   DL_CRCP_feedData8
 Redirects to DL_CRCP_feedData8 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_feedData16   DL_CRCP_feedData16
 Redirects to DL_CRCP_feedData16 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_feedData32   DL_CRCP_feedData32
 Redirects to DL_CRCP_feedData32 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_getResult16   DL_CRCP_getResult16
 Redirects to DL_CRCP_getResult16 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_getResult32   DL_CRCP_getResult32
 Redirects to DL_CRCP_getResult32 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_setPolynomial   DL_CRCP_setPolynomial
 Redirects to DL_CRCP_setPolynomial for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_getPolynomial   DL_CRCP_getPolynomial
 Redirects to DL_CRCP_getPolynomial for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_calculateBlock32   DL_CRCP_calculateBlock32
 Redirects to DL_CRCP_calculateBlock32 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_calculateMemoryRange32   DL_CRCP_calculateMemoryRange32
 Redirects to DL_CRCP_calculateMemoryRange32 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_calculateBlock16   DL_CRCP_calculateBlock16
 Redirects to DL_CRCP_calculateBlock16 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_calculateMemoryRange16   DL_CRCP_calculateMemoryRange16
 Redirects to DL_CRCP_calculateMemoryRange16 for compatibility between CRC and CRCP DriverLib modules.
 
#define DL_CRC_getCRCINAddr   DL_CRCP_getCRCINAddr
 Redirects to DL_CRCP_getCRCINAddr for compatibility between CRC and CRCP DriverLib modules.
 

Enumerations

enum  DL_CRCP_POLYNOMIAL_SIZE {
  DL_CRCP_POLYNOMIAL_SIZE_16 = CRCP_CRCCTRL_POLYSIZE_CRC16,
  DL_CRCP_POLYNOMIAL_SIZE_32 = CRCP_CRCCTRL_POLYSIZE_CRC32
}
 
enum  DL_CRCP_BIT {
  DL_CRCP_BIT_REVERSED = CRCP_CRCCTRL_BITREVERSE_REVERSED,
  DL_CRCP_BIT_NOT_REVERSED = CRCP_CRCCTRL_BITREVERSE_NOT_REVERSED
}
 
enum  DL_CRCP_INPUT_ENDIANESS {
  DL_CRCP_INPUT_ENDIANESS_LITTLE_ENDIAN,
  DL_CRCP_INPUT_ENDIANESS_BIG_ENDIAN
}
 
enum  DL_CRCP_OUTPUT_BYTESWAP {
  DL_CRCP_OUTPUT_BYTESWAP_ENABLED = CRCP_CRCCTRL_OUTPUT_BYTESWAP_ENABLE,
  DL_CRCP_OUTPUT_BYTESWAP_DISABLED = CRCP_CRCCTRL_OUTPUT_BYTESWAP_DISABLE
}
 
enum  DL_CRCP_CRCPOLY_POLYNOMIAL {
  DL_CRCP_CRCPOLY_POLYNOMIAL_32_MPEG2 = 0x04C11DB7,
  DL_CRCP_CRCPOLY_POLYNOMIAL_32_Q = 0x814141AB,
  DL_CRCP_CRCPOLY_POLYNOMIAL_32_JAMCRC = 0x04C11DB7,
  DL_CRCP_CRCPOLY_POLYNOMIAL_32_XFER = 0x000000AF,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_ZERO = 0x00001021,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_ARC = 0x00001DCF,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_AUG_CCIT = 0x00001021,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_BUYPASS = 0x00008005,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_CCIT_FALSE = 0x00001021,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_CDMA2000 = 0x0000C867,
  DL_CRCP_CRCPOLY_POLYNOMIAL_16_MODBUS = 0x00008005
}
 commonly used pre-defined polynomials to be used by CRCP as mentioned by the website http://www.sunshine2k.de/coding/javascript/crc/crc_js.html. Custom polynomials can also be used in lieu of the follwoing. More...
 
enum  DL_CRCP_CRCSEED_SEED {
  DL_CRCP_CRCSEED_SEED_32_MPEG2 = 0xFFFFFFFF,
  DL_CRCP_CRCSEED_SEED_32_Q = 0x00000000,
  DL_CRCP_CRCSEED_SEED_32_JAMCRC = 0xFFFFFFFF,
  DL_CRCP_CRCSEED_SEED_32_XFER = 0x00000000,
  DL_CRCP_CRCSEED_SEED_16_CCIT_ZERO = 0x0000,
  DL_CRCP_CRCSEED_SEED_16_ARC = 0x0000,
  DL_CRCP_CRCSEED_SEED_16_AUG_CCIT = 0x1D0F,
  DL_CRCP_CRCSEED_SEED_16_BUYPASS = 0x0000,
  DL_CRCP_CRCSEED_SEED_16_CCIT_FALSE = 0xFFFF,
  DL_CRCP_CRCSEED_SEED_16_CDMA2000 = 0xFFFF,
  DL_CRCP_CRCSEED_SEED_16_MODBUS = 0xFFFF
}
 seeds for commonly used pre-defined polynomials to be used by CRCP as mentioned by the website http://www.sunshine2k.de/coding/javascript/crc/crc_js.html. Custom polynomials can also be used in lieu of the follwoing. More...
 

Functions

__STATIC_INLINE void DL_CRCP_enablePower (CRCP_Regs *crcp)
 Enables the Peripheral Write Enable (PWREN) register for the CRCP. More...
 
__STATIC_INLINE void DL_CRCP_disablePower (CRCP_Regs *crcp)
 Disables the Peripheral Write Enable (PWREN) register for the CRCP. More...
 
__STATIC_INLINE bool DL_CRCP_isPowerEnabled (const CRCP_Regs *crcp)
 Returns if the Peripheral Write Enable (PWREN) register for the CRCP is enabled. More...
 
__STATIC_INLINE void DL_CRCP_reset (CRCP_Regs *crcp)
 Resets CRCP peripheral. More...
 
__STATIC_INLINE bool DL_CRCP_isReset (const CRCP_Regs *crcp)
 Returns if CRCP module has been reset. More...
 
__STATIC_INLINE void DL_CRCP_init (CRCP_Regs *crcp, DL_CRCP_POLYNOMIAL_SIZE polySize, DL_CRCP_BIT bitOrd, DL_CRCP_INPUT_ENDIANESS inEndianness, DL_CRCP_OUTPUT_BYTESWAP outByteSwap)
 Initializes the CRCP peripheral. More...
 
__STATIC_INLINE void DL_CRCP_setSeed16 (CRCP_Regs *crcp, uint16_t seed)
 Initializes the seed for a 16-bit polynomial CRC calculation. More...
 
__STATIC_INLINE void DL_CRCP_setSeed32 (CRCP_Regs *crcp, uint32_t seed)
 Initializes the seed for a 32-bit polynomial CRC calculation. More...
 
__STATIC_INLINE void DL_CRCP_feedData8 (CRCP_Regs *crcp, uint8_t dataIn)
 Feeds 8-bit data into the CRC calculation. More...
 
__STATIC_INLINE void DL_CRCP_feedData16 (CRCP_Regs *crcp, uint16_t dataIn)
 Feeds 16-bit data into the CRC calculation. More...
 
__STATIC_INLINE void DL_CRCP_feedData32 (CRCP_Regs *crcp, uint32_t dataIn)
 Feeds 32-bit data into the CRC calculation. More...
 
__STATIC_INLINE uint16_t DL_CRCP_getResult16 (const CRCP_Regs *crcp)
 Returns the result from the 16-bit polynomial calculation. More...
 
__STATIC_INLINE uint32_t DL_CRCP_getResult32 (const CRCP_Regs *crcp)
 Returns the result from the 32-bit polynomial calculation. More...
 
__STATIC_INLINE void DL_CRCP_setPolynomial (CRCP_Regs *crcp, uint32_t poly)
 Sets the active polynomial terms for the CRC calculation. More...
 
__STATIC_INLINE uint32_t DL_CRCP_getPolynomial (const CRCP_Regs *crcp)
 Gets the active polynomial terms for the CRC calculation. More...
 
uint32_t DL_CRCP_calculateBlock32 (CRCP_Regs *crcp, uint32_t seed, const uint32_t *ptr, uint32_t size)
 Calculates the CRC over a range of 32-bit values. More...
 
uint32_t DL_CRCP_calculateMemoryRange32 (CRCP_Regs *crcp, uint32_t seed, uint32_t *ptrStart, const uint32_t *ptrEnd)
 Calculates the CRC over a memory range. More...
 
uint16_t DL_CRCP_calculateBlock16 (CRCP_Regs *crcp, uint16_t seed, const uint16_t *ptr, uint16_t size)
 Calculates the CRC over a range of 16-bit values. More...
 
uint16_t DL_CRCP_calculateMemoryRange16 (CRCP_Regs *crcp, uint16_t seed, uint16_t *ptrStart, const uint16_t *ptrEnd)
 Calculates the CRC over a memory range. More...
 
__STATIC_INLINE uintptr_t DL_CRCP_getCRCINAddr (const CRCP_Regs *crcp)
 Returns the address of the CRC input data register. More...
 
© Copyright 1995-2025, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale