lib_flash.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. ******************************************************************************
  3. * @file lib_flash.h
  4. * @author Application Team
  5. * @version V4.4.0
  6. * @date 2018-09-27
  7. * @brief FLASH library.
  8. ******************************************************************************
  9. * @attention
  10. *
  11. ******************************************************************************
  12. */
  13. #ifndef __LIB_FLASH_H
  14. #define __LIB_FLASH_H
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #include "target.h"
  19. //CSMode
  20. #define FLASH_CSMODE_DISABLE FLASH_CTRL_CSMODE_DISABLE
  21. #define FLASH_CSMODE_ALWAYSON FLASH_CTRL_CSMODE_ALWAYSON
  22. #define FLASH_CSMODE_TIM2OF FLASH_CTRL_CSMODE_TIM2OV
  23. #define FLASH_CSMODE_RTC FLASH_CTRL_CSMODE_RTC
  24. #define IS_FLASH_CSMODE(__CSMODE__) (((__CSMODE__) == FLASH_CSMODE_DISABLE) ||\
  25. ((__CSMODE__) == FLASH_CSMODE_ALWAYSON) ||\
  26. ((__CSMODE__) == FLASH_CSMODE_TIM2OF) ||\
  27. ((__CSMODE__) == FLASH_CSMODE_RTC))
  28. //INT
  29. #define FLASH_INT_CS FLASH_CTRL_CSINTEN
  30. #define IS_FLASH_INT(__INT__) ((__INT__) == FLASH_INT_CS)
  31. //WriteStatus
  32. #define FLASH_WSTA_BUSY 0
  33. #define FLASH_WRITE_FINISH 1
  34. #define FLASH_WSTA_FINISH FLASH_WRITE_FINISH
  35. #define IS_FLASH_ADDRESS(__ADDRESS__) ((__ADDRESS__) < 0x40000UL)
  36. #define IS_FLASH_ADRRW(__ADDRW__) (((__ADDRW__) < 0x40000UL) &&\
  37. (((__ADDRW__) & 0x3U) == 0U))
  38. #define IS_FLASH_ADRRHW(__ADDRHW__) (((__ADDRHW__) < 0x40000UL) &&\
  39. (((__ADDRHW__) & 0x1U) == 0U))
  40. #define IS_FLASH_CHECKSUMADDR(__ADDRESS1__,__ADDRESS2__) (((__ADDRESS1__) < 0x40000) && ((__ADDRESS2__) < 0x40000) && ((__ADDRESS1__) < (__ADDRESS2__)))
  41. /* Exported Functions ------------------------------------------------------- */
  42. void FLASH_Init(uint32_t CSMode);
  43. void FLASH_INTConfig(uint32_t IntMask, uint32_t NewState);
  44. void FLASH_CycleInit(void);
  45. void FLASH_SectorErase(uint32_t SectorAddr);
  46. void FLASH_ProgramWord(uint32_t Addr, uint32_t *WordBuffer, uint32_t Length);
  47. void FLASH_ProgramHWord(uint32_t Addr, uint16_t *HWordBuffer, uint32_t Length);
  48. void FLASH_ProgramByte(uint32_t Addr, uint8_t *ByteBuffer, uint32_t Length);
  49. uint32_t FLASH_GetWriteStatus(void);
  50. void FLASH_SetCheckSumRange(uint32_t AddrStart, uint32_t AddrEnd);
  51. void FLASH_SetCheckSumCompValue(uint32_t Checksum);
  52. uint32_t FLASH_GetCheckSum(void);
  53. uint8_t FLASH_GetINTStatus(uint32_t IntMask);
  54. void FLASH_ClearINTStatus(uint32_t IntMask);
  55. #ifdef __cplusplus
  56. }
  57. #endif
  58. #endif /* __LIB_FLASH_H */
  59. /*********************************** END OF FILE ******************************/