1 /** 2 ****************************************************************************** 3 * @file lib_misc.h 4 * @author Application Team 5 * @version V1.1.0 6 * @date 2019-10-28 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 MISC1_SRAMINT_LOCKUP 24 #define MISC_FLAG_PIAC MISC1_SRAMINT_PIAC 25 #define MISC_FLAG_HIAC MISC1_SRAMINT_HIAC 26 #define MISC_FLAG_PERR MISC1_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 MISC1_SRAMINIT_LOCKIE 31 #define MISC_INT_PIAC MISC1_SRAMINIT_PIACIE 32 #define MISC_INT_HIAC MISC1_SRAMINIT_HIACIE 33 #define MISC_INT_PERR MISC1_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 (0x1U << MISC1_IREN_IREN_Pos) 38 #define MISC_IREN_TX1 (0x1U << MISC1_IREN_IREN_Pos) 39 #define MISC_IREN_TX2 (0x1U << MISC1_IREN_IREN_Pos) 40 #define MISC_IREN_TX3 (0x1U << MISC1_IREN_IREN_Pos) 41 #define MISC_IREN_TX4 (0x1U << MISC1_IREN_IREN_Pos) 42 #define MISC_IREN_TX5 (0x1U << MISC1_IREN_IREN_Pos) 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 /****************************** MISC Instances ********************************/ 61 #define IS_MISC_ALL_INSTANCE(INSTANCE) ((INSTANCE) == MISC1) 62 63 #define IS_MISC2_ALL_INSTANCE(INSTANCE) ((INSTANCE) == MISC2) 64 65 /* Exported Functions ------------------------------------------------------- */ 66 uint8_t MISC_GetFlag(uint32_t FlagMask); 67 void MISC_ClearFlag(uint32_t FlagMask); 68 void MISC_INTConfig(uint32_t INTMask, uint32_t NewState); 69 void MISC_SRAMParityCmd(uint32_t NewState); 70 uint32_t MISC_GetSRAMPEAddr(void); 71 uint32_t MISC_GetAPBErrAddr(void); 72 uint32_t MISC_GetAHBErrAddr(void); 73 void MISC_IRCmd(uint32_t IRx, uint32_t NewState); 74 void MISC_IRDutyConfig(uint16_t DutyHigh, uint16_t DutyLow); 75 void MISC_HardFaultCmd(uint32_t NewState); 76 void MISC_LockResetCmd(uint32_t NewState); 77 void MISC_IRQLATConfig(uint8_t Latency); 78 79 #ifdef __cplusplus 80 } 81 #endif 82 83 #endif /* __LIB_MISC_H */ 84 85 /*********************************** END OF FILE ******************************/ 86