| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /***************************************************************
- *Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd.
- *文件名:
- *作 者: Liut
- *版 本: V1.00
- *日 期: 2017/07/14
- *描 述:
- *备 注: 适用于 ES8P508x芯片
- 本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。
- ***************************************************************/
- #include "lib_crc.h"
- /***************************************************************
- 函数名:CRC_getTypeValue
- 描 述:配置并返回一个CRC_CON配置参数
- 输入值:con_value CRC_CON 数据配置值结构体
- 返回值:CRC_CON配置值
- ***************************************************************/
- uint32_t CRC_getTypeValue(CRC_CONValueStruType con_value)
- {
- uint32_t type =0;
- type = (con_value.xorout | con_value.refout | con_value.refin |\
- con_value.mode|con_value.hs_type|con_value.init_data_type);
- return type;
- }
- /***************************************************************
- 函数名:CRC_EmptayCheck
- 描 述:查空函数
- 输入值:address: 查空区域首地址, data_len:查空区域字节长度
- 返回值:1:成功,0 :失败
- ***************************************************************/
- uint32_t CRC_EmptayCheck(void* address, uint32_t data_len)
- {
- CRC_EM CRC_EmptayCheck = (CRC_EM)(*(uint32_t *)CRC_EmptayCheck_addr);
- uint32_t result;
- __ASM("CPSID i");
- result = (*CRC_EmptayCheck)(address, data_len);
- __ASM("CPSIE i");
- return result;
- }
- /***************************************************************
- 函数名:CRC_FlashVerify
- 描 述:FLASH校验函数
- 输入值:address: 校验区域首地址, data_len:校验区域字节长度, type:校验方式配置
- 返回值:CRC校验码
- ***************************************************************/
- uint32_t CRC_FlashVerify(void* address, uint32_t data_len, uint32_t type)
- {
- CRC_FL CRC_FlashVerify = (CRC_FL)(*(uint32_t *)CRC_FlashVerify_addr);
- uint32_t result;
- __ASM("CPSID i");
- result = (*CRC_FlashVerify)(address, data_len, type);
- __ASM("CPSIE i");
- return result;
- }
- /***************************************************************
- 函数名:CRC_UserCal
- 描 述:用户数据校验函数
- 输入值:address: 用户校验数据首地址, data_len:校验区域字节长度, type:校验方式配置
- 返回值:CRC校验码
- ***************************************************************/
- uint32_t CRC_UserCal(void* address, uint32_t data_len, uint32_t type)
- {
- CRC_US CRC_UserCal = (CRC_US)(*(uint32_t *)CRC_UserCal_addr);
- uint32_t result;
- __ASM("CPSID i");
- result = (*CRC_UserCal)(address, data_len, type);
- __ASM("CPSIE i");
- return result;
- }
- /***************************************************************
- 函数名:CRC_CheckReset
- 描 述:CRC复位查询函数
- 输入值:无
- 返回值:复位标志,1:有复位标志,0:无复位标志
- ***************************************************************/
- uint32_t CRC_CheckReset(void)
- {
- CRC_CH CRC_CheckReset = (CRC_CH)(*(uint32_t *)CRC_CheckReset_addr);
- uint32_t result;
- __ASM("CPSID i");
- result = (*CRC_CheckReset)();
- __ASM("CPSIE i");
- return result;
- }
- /************************END OF FILE**************************/
|