lib_misc.h 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #include "target.h"
  19. //FlagMask
  20. #define MISC_FLAG_LOCKUP MISC1_SRAMINT_LOCKUP
  21. #define MISC_FLAG_PIAC MISC1_SRAMINT_PIAC
  22. #define MISC_FLAG_HIAC MISC1_SRAMINT_HIAC
  23. #define MISC_FLAG_PERR MISC1_SRAMINT_PERR
  24. #define MISC_FLAG_Msk (MISC_FLAG_LOCKUP | MISC_FLAG_PIAC | MISC_FLAG_HIAC | MISC_FLAG_PERR)
  25. //MISC interrupt
  26. #define MISC_INT_LOCK MISC1_SRAMINIT_LOCKIE
  27. #define MISC_INT_PIAC MISC1_SRAMINIT_PIACIE
  28. #define MISC_INT_HIAC MISC1_SRAMINIT_HIACIE
  29. #define MISC_INT_PERR MISC1_SRAMINIT_PERRIE
  30. #define MISC_INT_Msk (MISC_INT_LOCK | MISC_INT_PIAC | MISC_INT_HIAC | MISC_INT_PERR)
  31. //IR
  32. #define MISC_IREN_TX0 (0x1U << MISC1_IREN_IREN_Pos)
  33. #define MISC_IREN_TX1 (0x1U << MISC1_IREN_IREN_Pos)
  34. #define MISC_IREN_TX2 (0x1U << MISC1_IREN_IREN_Pos)
  35. #define MISC_IREN_TX3 (0x1U << MISC1_IREN_IREN_Pos)
  36. #define MISC_IREN_TX4 (0x1U << MISC1_IREN_IREN_Pos)
  37. #define MISC_IREN_TX5 (0x1U << MISC1_IREN_IREN_Pos)
  38. #define MISC_IREN_Msk (0x3FUL)
  39. /* Private macros ------------------------------------------------------------*/
  40. #define IS_MISC_FLAGR(__FLAGR__) (((__FLAGR__) == MISC_FLAG_LOCKUP) ||\
  41. ((__FLAGR__) == MISC_FLAG_PIAC) ||\
  42. ((__FLAGR__) == MISC_FLAG_HIAC) ||\
  43. ((__FLAGR__) == MISC_FLAG_PERR))
  44. #define IS_MISC_FLAGC(__FLAGC__) ((((__FLAGC__) & MISC_FLAG_Msk) != 0U) &&\
  45. (((__FLAGC__) & ~MISC_FLAG_Msk) == 0U))
  46. #define IS_MISC_INT(__INT__) ((((__INT__) & MISC_INT_Msk) != 0U) &&\
  47. (((__INT__) &~MISC_INT_Msk) == 0U))
  48. #define IS_MISC_IREN(__IREN__) ((((__IREN__) & MISC_IREN_Msk) != 0U) &&\
  49. (((__IREN__) & ~MISC_IREN_Msk) == 0U))
  50. /****************************** MISC Instances ********************************/
  51. #define IS_MISC_ALL_INSTANCE(INSTANCE) ((INSTANCE) == MISC1)
  52. #define IS_MISC2_ALL_INSTANCE(INSTANCE) ((INSTANCE) == MISC2)
  53. /* Exported Functions ------------------------------------------------------- */
  54. uint8_t MISC_GetFlag(uint32_t FlagMask);
  55. void MISC_ClearFlag(uint32_t FlagMask);
  56. void MISC_INTConfig(uint32_t INTMask, uint32_t NewState);
  57. void MISC_SRAMParityCmd(uint32_t NewState);
  58. uint32_t MISC_GetSRAMPEAddr(void);
  59. uint32_t MISC_GetAPBErrAddr(void);
  60. uint32_t MISC_GetAHBErrAddr(void);
  61. void MISC_IRCmd(uint32_t IRx, uint32_t NewState);
  62. void MISC_IRDutyConfig(uint16_t DutyHigh, uint16_t DutyLow);
  63. void MISC_HardFaultCmd(uint32_t NewState);
  64. void MISC_LockResetCmd(uint32_t NewState);
  65. void MISC_IRQLATConfig(uint8_t Latency);
  66. #ifdef __cplusplus
  67. }
  68. #endif
  69. #endif /* __LIB_MISC_H */
  70. /*********************************** END OF FILE ******************************/