1 /**
2   ******************************************************************************
3   * @file    lib_misc.h
4   * @author  Application Team
5   * @version V4.4.0
6   * @date    2018-09-27
7   * @brief   MISC library.
8   ******************************************************************************
9   * @attention
10   *
11   ******************************************************************************
12   */
13 #ifndef __LIB_MISC_H
14 #define __LIB_MISC_H
15 
16 #ifdef __cplusplus
17  extern "C" {
18 #endif
19 
20 #include "target.h"
21 
22 //FlagMask
23 #define MISC_FLAG_LOCKUP    MISC_SRAMINT_LOCKUP
24 #define MISC_FLAG_PIAC      MISC_SRAMINT_PIAC
25 #define MISC_FLAG_HIAC      MISC_SRAMINT_HIAC
26 #define MISC_FLAG_PERR      MISC_SRAMINT_PERR
27 #define MISC_FLAG_Msk      (MISC_FLAG_LOCKUP | MISC_FLAG_PIAC | MISC_FLAG_HIAC | MISC_FLAG_PERR)
28 
29 //MISC interrupt
30 #define MISC_INT_LOCK       MISC_SRAMINIT_LOCKIE
31 #define MISC_INT_PIAC       MISC_SRAMINIT_PIACIE
32 #define MISC_INT_HIAC       MISC_SRAMINIT_HIACIE
33 #define MISC_INT_PERR       MISC_SRAMINIT_PERRIE
34 #define MISC_INT_Msk       (MISC_INT_LOCK | MISC_INT_PIAC | MISC_INT_HIAC | MISC_INT_PERR)
35 
36 //IR
37 #define MISC_IREN_TX0       MISC_IREN_UART0
38 #define MISC_IREN_TX1       MISC_IREN_UART1
39 #define MISC_IREN_TX2       MISC_IREN_UART2
40 #define MISC_IREN_TX3       MISC_IREN_UART3
41 #define MISC_IREN_TX4       MISC_IREN_UART4
42 #define MISC_IREN_TX5       MISC_IREN_UART5
43 #define MISC_IREN_Msk      (0x3FUL)
44 
45 /* Private macros ------------------------------------------------------------*/
46 #define IS_MISC_FLAGR(__FLAGR__) (((__FLAGR__) == MISC_FLAG_LOCKUP) ||\
47                                   ((__FLAGR__) == MISC_FLAG_PIAC)   ||\
48                                   ((__FLAGR__) == MISC_FLAG_HIAC)   ||\
49                                   ((__FLAGR__) == MISC_FLAG_PERR))
50 
51 #define IS_MISC_FLAGC(__FLAGC__)  ((((__FLAGC__) & MISC_FLAG_Msk) != 0U) &&\
52                                    (((__FLAGC__) & ~MISC_FLAG_Msk) == 0U))
53 
54 #define IS_MISC_INT(__INT__)  ((((__INT__) & MISC_INT_Msk) != 0U) &&\
55                                (((__INT__) &~MISC_INT_Msk) == 0U))
56 
57 #define IS_MISC_IREN(__IREN__)  ((((__IREN__) & MISC_IREN_Msk) != 0U) &&\
58                                  (((__IREN__) & ~MISC_IREN_Msk) == 0U))
59 
60 /* Exported Functions ------------------------------------------------------- */
61 uint8_t MISC_GetFlag(uint32_t FlagMask);
62 void MISC_ClearFlag(uint32_t FlagMask);
63 void MISC_INTConfig(uint32_t INTMask, uint32_t NewState);
64 void MISC_SRAMParityCmd(uint32_t NewState);
65 uint32_t MISC_GetSRAMPEAddr(void);
66 uint32_t MISC_GetAPBErrAddr(void);
67 uint32_t MISC_GetAHBErrAddr(void);
68 void MISC_IRCmd(uint32_t IRx, uint32_t NewState);
69 void MISC_IRDutyConfig(uint16_t DutyHigh, uint16_t DutyLow);
70 void MISC_HardFaultCmd(uint32_t NewState);
71 void MISC_LockResetCmd(uint32_t NewState);
72 void MISC_IRQLATConfig(uint8_t Latency);
73 
74 #ifdef __cplusplus
75 }
76 #endif
77 
78 #endif  /* __LIB_MISC_H */
79 
80 /*********************************** END OF FILE ******************************/
81