| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /***************************************************************
- *Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd.
- *文件名:
- *作 者: Liut
- *版 本: V1.00
- *日 期: 2017/07/14
- *描 述:
- *备 注: 适用于 ES8P508x芯片
- 本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。
- ***************************************************************/
- #ifndef __LIBCRC_H
- #define __LIBCRC_H
- #include "ES8P508x.h"
- #include "type.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define CRC_EmptayCheck_addr 0x10000010
- #define CRC_FlashVerify_addr 0x10000014
- #define CRC_UserCal_addr 0x10000018
- #define CRC_CheckReset_addr 0x1000001C
- typedef uint32_t (*CRC_EM)(void* address, uint32_t data_len);
- typedef uint32_t (*CRC_FL)(void* address, uint32_t data_len, uint32_t type);
- typedef uint32_t (*CRC_US)(void* address, uint32_t data_len, uint32_t type);
- typedef uint32_t (*CRC_CH)(void);
-
- typedef enum
- {
- CRC_XOROUT_NORMAL = 0x0, //数据输出不取反
- CRC_XOROUT_ANTI = (1U<<14), //数据输出取反
- } CRC_XOROUT;
- typedef enum
- {
- CRC_REFOUT_NORMAL = 0x0, //数据输出正序
- CRC_REFOUT_REVERSE = (1U<<13), //数据输出倒序
- } CRC_REFOUT;
- typedef enum
- {
- CRC_REFIN_NORMAL = 0x0, //数据输入正序
- CRC_REFIN_REVERSE = (1U<<12), //数据输入倒序
- } CRC_REFIN;
- typedef enum
- {
- CRC_MOD_CRC32 = 0x0, //CRC位宽为字节
- CRC_MOD_CRC16 = (2U<<8), //CRC位宽为半字
- CRC_MOD_CRC16_CCITT = (3U<<8), //CRC位宽为字
- } CRC_MOD_TYPE;
- typedef enum
- {
- CRC_INIT_DATA_ALL_0 = 0x0, //CRC初始化数据全为0
- CRC_INIT_DATA_ALL_1 = (1U<<3), //CRC初始化数据全为1
- } CRC_INIT_DATA;
- typedef enum
- {
- CRC_HS_TYPE_DISABLE = 0x0, //CRC高速模式禁止
- CRC_HS_TYPE_ENABLE = (1U<<2), //CRC高速模式使能,当CRC时钟小于24M时才能使能
- } CRC_HS_TYPE;
- /*CRC_CON 数据配置值结构体初始化*/
- typedef struct
- {
- CRC_XOROUT xorout;
- CRC_REFOUT refout;
- CRC_REFIN refin;
- CRC_MOD_TYPE mode;
- CRC_INIT_DATA init_data_type;
- CRC_HS_TYPE hs_type;
- } CRC_CONValueStruType;
- uint32_t CRC_getTypeValue(CRC_CONValueStruType con_value);
- uint32_t CRC_EmptayCheck(void* address, uint32_t data_len);
- uint32_t CRC_FlashVerify(void* address, uint32_t data_len, uint32_t type);
- uint32_t CRC_UserCal(void* address, uint32_t data_len, uint32_t type);
- uint32_t CRC_CheckReset(void);
- #ifdef __cplusplus
- }
- #endif
- #endif
- /*************************END OF FILE**********************/
|