forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-23 e5ec6ffc2fa0c07785c9d797c3fd74fd3031059f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/**
  ******************************************************************************
  * @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 */