123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- /** @file CRC.h
- * @brief CRC Driver Header File
- * @date 29.May.2013
- * @version 03.05.02
- *
- * This file contains:
- * - Definitions
- * - Types
- * - Interface Prototypes
- * .
- * which are relevant for the CRC driver.
- */
- /* (c) Texas Instruments 2009-2013, All rights reserved. */
- #ifndef __CRC_H__
- #define __CRC_H__
- #include "reg_crc.h"
- /* USER CODE BEGIN (0) */
- /* USER CODE END */
- /* CRC General Definitions */
- /** @def CRCLEVEL_ACTIVE
- * @brief Alias name for CRC error operation level active
- */
- #define CRCLEVEL_ACTIVE 0x00U
- /** @def CRC_AUTO
- * @brief Alias name for CRC auto mode
- */
- #define CRC_AUTO 0x00000001U
- /** @def CRC_SEMI_CPU
- * @brief Alias name for semi cpu mode setting
- */
- #define CRC_SEMI_CPU 0x00000002U
- /** @def CRC_FULL_CPU
- * @brief Alias name for CRC cpu full mode
- */
- #define CRC_FULL_CPU 0x00000003U
- /** @def CRC_CH4_TO
- * @brief Alias name for channel1 time out interrupt flag
- */
- #define CRC_CH4_TO 0x10000000U
- /** @def CRC_CH4_UR
- * @brief Alias name for channel1 underrun interrupt flag
- */
- #define CRC_CH4_UR 0x08000000U
- /** @def CRC_CH4_OR
- * @brief Alias name for channel1 overrun interrupt flag
- */
- #define CRC_CH4_OR 0x04000000U
- /** @def CRC_CH4_FAIL
- * @brief Alias name for channel1 crc fail interrupt flag
- */
- #define CRC_CH4_FAIL 0x02000000U
- /** @def CRC_CH4_CC
- * @brief Alias name for channel1 compression complete interrupt flag
- */
- #define CRC_CH4_CC 0x01000000U
- /** @def CRC_CH3_TO
- * @brief Alias name for channel2 time out interrupt flag
- */
- #define CRC_CH3_TO 0x00100000U
- /** @def CRC_CH3_UR
- * @brief Alias name for channel2 underrun interrupt flag
- */
- #define CRC_CH3_UR 0x00080000U
- /** @def CRC_CH3_OR
- * @brief Alias name for channel2 overrun interrupt flag
- */
- #define CRC_CH3_OR 0x00040000U
- /** @def CRC_CH3_FAIL
- * @brief Alias name for channel2 crc fail interrupt flag
- */
- #define CRC_CH3_FAIL 0x00020000U
- /** @def CRC_CH3_CC
- * @brief Alias name for channel2 compression complete interrupt flag
- */
- #define CRC_CH3_CC 0x00010000U
- /** @def CRC_CH2_TO
- * @brief Alias name for channel3 time out interrupt flag
- */
- #define CRC_CH2_TO 0x00001000U
- /** @def CRC_CH2_UR
- * @brief Alias name for channel3 underrun interrupt flag
- */
- #define CRC_CH2_UR 0x00000800U
- /** @def CRC_CH2_OR
- * @brief Alias name for channel3 overrun interrupt flag
- */
- #define CRC_CH2_OR 0x00000400U
- /** @def CRC_CH2_FAIL
- * @brief Alias name for channel3 crc fail interrupt flag
- */
- #define CRC_CH2_FAIL 0x00000200U
- /** @def CRC_CH2_CC
- * @brief Alias name for channel3 compression complete interrupt flag
- */
- #define CRC_CH2_CC 0x00000100U
- /** @def CRC_CH1_TO
- * @brief Alias name for channel4 time out interrupt flag
- */
- #define CRC_CH1_TO 0x00000010U
- /** @def CRC_CH1_UR
- * @brief Alias name for channel4 underrun interrupt flag
- */
- #define CRC_CH1_UR 0x00000008U
- /** @def CRC_CH1_OR
- * @brief Alias name for channel4 overrun interrupt flag
- */
- #define CRC_CH1_OR 0x00000004U
- /** @def CRC_CH1_FAIL
- * @brief Alias name for channel4 crc fail interrupt flag
- */
- #define CRC_CH1_FAIL 0x00000002U
- /** @def CRC_CH1_CC
- * @brief Alias name for channel4 compression complete interrupt flag
- */
- #define CRC_CH1_CC 0x00000001U
- /** @struct crcModConfig
- * @brief CRC mode specific parameters
- *
- * This type is used to pass crc mode specific parameters
- */
- /** @typedef crcModConfig_t
- * @brief CRC Data Type Definition
- */
- typedef struct crcModConfig
- {
- uint32 mode; /**< Mode of operation */
- uint32 crc_channel; /**< CRC channel-0,1 */
- uint32 * src_data_pat; /**< Pattern data */
- uint32 data_length; /**< Pattern data length.Number of 64 bit size word*/
- } crcModConfig_t;
- /** @struct crcConfig
- * @brief CRC configuration for different modes
- *
- * This type is used to pass crc configuration
- */
- /** @typedef crcConfig_t
- * @brief CRC Data Type Definition
- */
- typedef struct crcConfig
- {
- uint32 crc_channel; /**< CRC channel-0,1 */
- uint32 mode; /**< Mode of operation */
- uint32 pcount; /**< Pattern count*/
- uint32 scount; /**< Sector count */
- uint32 wdg_preload; /**< Watchdog period */
- uint32 block_preload; /**< Block period*/
- } crcConfig_t;
- /* USER CODE BEGIN (1) */
- /* USER CODE END */
- /**
- * @defgroup CRC CRC
- * @brief Cyclic Redundancy Check Controller Module.
- *
- * The CRC controller is a module that is used to perform CRC (Cyclic Redundancy Check) to verify the
- * integrity of memory system. A signature representing the contents of the memory is obtained when the
- * contents of the memory are read into CRC controller. The responsibility of CRC controller is to calculate
- * the signature for a set of data and then compare the calculated signature value against a pre-determined
- * good signature value. CRC controller supports two channels to perform CRC calculation on multiple
- * memories in parallel and can be used on any memory system.
- *
- * Related Files
- * - reg_crc.h
- * - crc.h
- * - crc.c
- * @addtogroup CRC
- * @{
- */
-
- /* CRC Interface Functions */
- void crcInit(void);
- void crcSendPowerDown(crcBASE_t *crc);
- void crcSignGen(crcBASE_t *crc,crcModConfig_t *param);
- void crcSetConfig(crcBASE_t *crc,crcConfig_t *param);
- uint64 crcGetSectorSig(crcBASE_t *crc,uint32 channel);
- uint32 crcGetFailedSector(crcBASE_t *crc,uint32 channel);
- uint32 crcGetIntrPend(crcBASE_t *crc,uint32 channel);
- void crcChannelReset(crcBASE_t *crc,uint32 channel);
- void crcEnableNotification(crcBASE_t *crc, uint32 flags);
- void crcDisableNotification(crcBASE_t *crc, uint32 flags);
- /** @fn void crcNotification(crcBASE_t *crc, uint32 flags)
- * @brief Interrupt callback
- * @param[in] crc - crc module base address
- * @param[in] flags - copy of error interrupt flags
- *
- * This is a callback that is provided by the application and is called upon
- * an interrupt. The parameter passed to the callback is a copy of the
- * interrupt flag register.
- */
- void crcNotification(crcBASE_t *crc, uint32 flags);
- /**@}*/
- /* USER CODE BEGIN (2) */
- /* USER CODE END */
- #endif
|