20 #include "hpm_crc_regs.h"
68 #define CRC_POLY_WIDTH_4 (4U)
69 #define CRC_POLY_WIDTH_5 (5U)
70 #define CRC_POLY_WIDTH_6 (6U)
71 #define CRC_POLY_WIDTH_7 (7U)
72 #define CRC_POLY_WIDTH_8 (8U)
73 #define CRC_POLY_WIDTH_16 (16U)
74 #define CRC_POLY_WIDTH_24 (24U)
75 #define CRC_POLY_WIDTH_32 (32U)
91 #define CRC_REG_WRITE8(addr, data)\
93 uint32_t addr32 = (uint32_t)(addr);\
94 (*(volatile uint8_t *)(addr32) = (data));\
97 #define CRC_REG_WRITE16(addr, data)\
99 uint32_t addr32 = (uint32_t)(addr);\
100 (*(volatile uint16_t *)(addr32) = (data));\
103 #define CRC_REG_WRITE32(addr, data)\
105 uint32_t addr32 = (uint32_t)(addr);\
106 (*(volatile uint32_t *)(addr32) = (data));\
uint32_t hpm_stat_t
Definition: hpm_common.h:123
static uint32_t crc_get_result(CRC_Type *ptr, uint32_t ch_index)
Get CRC result.
Definition: hpm_crc_drv.h:215
void crc_calc_block_half_words(CRC_Type *ptr, uint32_t ch_index, uint16_t *pbuffer, uint32_t length)
Calculate length half-words data block crc.
Definition: hpm_crc_drv.c:50
void crc_calc_large_block_fast(CRC_Type *ptr, uint32_t ch_index, uint8_t *pbuffer, uint32_t length)
Fast calculate length bytes large data block crc.
Definition: hpm_crc_drv.c:68
enum crc_refout_enum crc_refout_t
CRC Refout definitions.
struct crc_channel_config crc_channel_config_t
Channel config.
#define CRC_REG_WRITE8(addr, data)
Definition: hpm_crc_drv.h:91
enum crc_preset_enum crc_preset_t
CRC preset definitions.
static void crc_calc_half_word(CRC_Type *ptr, uint32_t ch_index, uint16_t data)
Calculate half-word data crc.
Definition: hpm_crc_drv.h:161
crc_preset_enum
CRC preset definitions.
Definition: hpm_crc_drv.h:25
crc_refout_enum
CRC Refout definitions.
Definition: hpm_crc_drv.h:55
enum crc_refin_enum crc_refin_t
CRC Refin definitions.
void crc_calc_block_words(CRC_Type *ptr, uint32_t ch_index, uint32_t *pbuffer, uint32_t length)
Calculate length words data block crc.
Definition: hpm_crc_drv.c:59
static void crc_calc_word(CRC_Type *ptr, uint32_t ch_index, uint32_t data)
Calculate word data crc.
Definition: hpm_crc_drv.h:183
hpm_stat_t crc_setup_channel_config(CRC_Type *ptr, uint32_t ch_index, crc_channel_config_t *cfg)
Setup CRC channel.
Definition: hpm_crc_drv.c:23
#define CRC_REG_WRITE32(addr, data)
Definition: hpm_crc_drv.h:103
static void crc_calc_byte(CRC_Type *ptr, uint32_t ch_index, uint8_t data)
Calculate one byte data crc.
Definition: hpm_crc_drv.h:139
crc_in_byte_order_enum
crc input data stream byte order definitions.
Definition: hpm_crc_drv.h:63
void crc_get_default_channel_config(crc_channel_config_t *cfg)
Get default channel config.
Definition: hpm_crc_drv.c:11
crc_refin_enum
CRC Refin definitions.
Definition: hpm_crc_drv.h:47
#define CRC_REG_WRITE16(addr, data)
Definition: hpm_crc_drv.h:97
void crc_calc_block_bytes(CRC_Type *ptr, uint32_t ch_index, uint8_t *pbuffer, uint32_t length)
Calculate length bytes data block crc.
Definition: hpm_crc_drv.c:41
enum crc_in_byte_order_enum crc_in_byte_order_t
crc input data stream byte order definitions.
@ crc_preset_crc32_autosar
Definition: hpm_crc_drv.h:28
@ crc_preset_crc16_modbus
Definition: hpm_crc_drv.h:31
@ crc_preset_crc8
Definition: hpm_crc_drv.h:40
@ crc_preset_crc16_xmodem
Definition: hpm_crc_drv.h:30
@ crc_preset_crc8_rohc
Definition: hpm_crc_drv.h:38
@ crc_preset_crc16_x25
Definition: hpm_crc_drv.h:33
@ crc_preset_crc32
Definition: hpm_crc_drv.h:27
@ crc_preset_none
Definition: hpm_crc_drv.h:26
@ crc_preset_crc5_usb
Definition: hpm_crc_drv.h:41
@ crc_preset_crc8_itu
Definition: hpm_crc_drv.h:39
@ crc_preset_crc16_ibm
Definition: hpm_crc_drv.h:36
@ crc_preset_crc8_maxim
Definition: hpm_crc_drv.h:37
@ crc_preset_crc16_ccitt
Definition: hpm_crc_drv.h:29
@ crc_preset_crc16_dnp
Definition: hpm_crc_drv.h:32
@ crc_preset_crc16_maxim
Definition: hpm_crc_drv.h:35
@ crc_preset_crc16_usb
Definition: hpm_crc_drv.h:34
@ crc_refout_false
Definition: hpm_crc_drv.h:56
@ crc_refout_true
Definition: hpm_crc_drv.h:57
@ crc_in_byte_order_msb
Definition: hpm_crc_drv.h:65
@ crc_in_byte_order_lsb
Definition: hpm_crc_drv.h:64
@ crc_refin_true
Definition: hpm_crc_drv.h:49
@ crc_refin_false
Definition: hpm_crc_drv.h:48
Definition: hpm_crc_regs.h:12
__RW uint32_t RESULT
Definition: hpm_crc_regs.h:21
struct CRC_Type::@292 CHN[8]
__RW uint32_t DATA
Definition: hpm_crc_regs.h:20
Channel config.
Definition: hpm_crc_drv.h:80
crc_refin_t refin
Definition: hpm_crc_drv.h:87
crc_preset_t preset
Definition: hpm_crc_drv.h:81
uint32_t xorout
Definition: hpm_crc_drv.h:88
uint32_t init
Definition: hpm_crc_drv.h:82
crc_refout_t refout
Definition: hpm_crc_drv.h:86
uint32_t poly
Definition: hpm_crc_drv.h:83
uint32_t poly_width
Definition: hpm_crc_drv.h:84
crc_in_byte_order_t in_byte_order
Definition: hpm_crc_drv.h:85