/**
|
******************************************************************************
|
* @file fm33a0xxev_hash.h
|
* @author FM33A0XXEV Application Team
|
* @version V1.0.0
|
* @date 16-April-2020
|
* @brief This file contains all the functions prototypes for the HASH firmware library.
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __FM33A0XXEV_HASH_H
|
#define __FM33A0XXEV_HASH_H
|
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "FM33A0XXEV.h"
|
|
#define HASH_CSR_START_Pos 7 /* HASHÔËËãÆô¶¯¼Ä´æÆ÷£¬Èí¼þд1Æô¶¯ÔËË㣬ÔËËã½áÊøºóÓ²¼þ×Ô¶¯ÇåÁã */
|
#define HASH_CSR_START_Msk (0x1U << HASH_CSR_START_Pos)
|
|
#define HASH_CSR_BUSY_Pos 6 /* HASHÔËËã״̬£¬Ó²¼þÖÃ룬Èí¼þÖ»¶Á */
|
#define HASH_CSR_BUSY_Msk (0x1U << HASH_CSR_BUSY_Pos)
|
|
#define HASH_CSR_HASHSEL_Pos 1 /* SHAË㷨ѡÔñ */
|
#define HASH_CSR_HASHSEL_Msk (0x1U << HASH_CSR_HASHSEL_Pos)
|
#define HASH_CSR_HASHSEL_SHA256 (0x0U << HASH_CSR_HASHSEL_Pos) /* 0£ºSHA256 */
|
#define HASH_CSR_HASHSEL_SHA1 (0x1U << HASH_CSR_HASHSEL_Pos) /* 1£ºSHA1 */
|
|
#define HASH_DTR_DATA_TYPE_Pos 0 /* ÊäÈë»òÊä³öÊý¾Ý˳Ðò½»»»¿ØÖÆ
|
00£º²»½»»»
|
01£ºhalf-word½»»»
|
10£ºbyte½»»»
|
11£ºbit½»»»
|
´Ë¼Ä´æÆ÷ÓÃÓÚ¶ÔÊäÈë32bitÊý¾ÝµÄλÐò½øÐе÷Õû£»±ÈÈçÊäÈëΪ0x1234_5678£¬half-word½»»»ºóΪ0x5678_1234£¬byte½»»»ºóΪ0x7856_3412£¬bit½»»»ºóΪ0x1E6A_2C48
|
*/
|
#define HASH_DTR_DATA_TYPE_Msk (0x3U << HASH_DTR_DATA_TYPE_Pos)
|
#define HASH_DTR_DATA_TYPE_NONE (0x0U << HASH_DTR_DATA_TYPE_Pos) /* ²»½»»» */
|
#define HASH_DTR_DATA_TYPE_HALFWORD (0x1U << HASH_DTR_DATA_TYPE_Pos) /* half-word½»»» */
|
#define HASH_DTR_DATA_TYPE_BYTE (0x2U << HASH_DTR_DATA_TYPE_Pos) /* byte½»»» */
|
#define HASH_DTR_DATA_TYPE_BIT (0x3U << HASH_DTR_DATA_TYPE_Pos) /* bit½»»» */
|
//Macro_End
|
|
/* Exported functions --------------------------------------------------------*/
|
extern void HASH_Deinit(void);
|
|
/* HASHÔËËãÆô¶¯¼Ä´æÆ÷£¬Èí¼þд1Æô¶¯ÔËË㣬ÔËËã½áÊøºóÓ²¼þ×Ô¶¯ÇåÁã Ïà¹Øº¯Êý */
|
extern void HASH_CSR_START_Setable(FunState NewState);
|
extern FunState HASH_CSR_START_Getable(void);
|
|
|
/* SHAË㷨ѡÔñ Ïà¹Øº¯Êý */
|
extern void HASH_CSR_HASHSEL_Set(uint32_t SetValue);
|
extern uint32_t HASH_CSR_HASHSEL_Get(void);
|
|
/* ÊäÈë»òÊä³öÊý¾Ý˳Ðò½»»»¿ØÖÆ
|
00£º²»½»»»
|
01£ºhalf-word½»»»
|
10£ºbyte½»»»
|
11£ºbit½»»»
|
´Ë¼Ä´æÆ÷ÓÃÓÚ¶ÔÊäÈë32bitÊý¾ÝµÄλÐò½øÐе÷Õû£»±ÈÈçÊäÈëΪ0x1234_5678£¬half-word½»»»ºóΪ0x5678_1234£¬byte½»»»ºóΪ0x7856_3412£¬bit½»»»ºóΪ0x1E6A_2C48
|
Ïà¹Øº¯Êý */
|
extern void HASH_DTR_DATA_TYPE_Set(uint32_t SetValue);
|
extern uint32_t HASH_DTR_DATA_TYPE_Get(void);
|
//Announce_End
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* __FM33A0XXEV_HASH_H */
|