HAL_EFLASH.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. ******************************************************************************
  3. * @file HAL_EFlash.h
  4. * @version V1.0.0
  5. * @date 2020
  6. * @brief Header file of EFlash HAL module.
  7. ******************************************************************************
  8. */
  9. #ifndef __HAL_EFlash_H__
  10. #define __HAL_EFlash_H__
  11. #include "ACM32Fxx_HAL.h"
  12. #define EFLASH_PAGE_SIZE (512UL)
  13. #define HAL_EFLASH_READ_WORD(Addr) (*(volatile uint32_t *)(Addr)) // Read By Word
  14. #define HAL_EFLASH_READ_HALFWORD(Addr) (*(volatile uint16_t *)(Addr)) // Read By Half Word
  15. #define HAL_EFLASH_READ_BYTE(Addr) (*(volatile uint8_t *)(Addr)) // Read By Byte
  16. /******************** Bit definition for EFC_CTRL register ******************/
  17. #define EFC_CTRL_CHIP_ERASE_MODE (1 << 2)
  18. #define EFC_CTRL_PAGE_ERASE_MODE (1 << 1)
  19. #define EFC_CTRL_PROGRAM_MODE (1 << 0)
  20. #define EFLASH_RD_WAIT_POS 7
  21. /******************** Bit definition for EFC_STATUS register ***************/
  22. #define EFC_STATUS_EFLASH_RDY (1 << 0)
  23. #define SET_EFC_RD_WAIT(wait) {EFC->CTRL = (EFC->CTRL & ~(0x1F << 7)) | (wait << 7);}
  24. /* Exported functions --------------------------------------------------------*/
  25. /* HAL_EFlash_Init */
  26. void HAL_EFlash_Init(uint32_t fu32_freq);
  27. /* HAL_EFlash_ErasePage */
  28. bool HAL_EFlash_ErasePage(uint32_t fu32_Addr);
  29. /* HAL_EFlash_Program_Word */
  30. bool HAL_EFlash_Program_Word(uint32_t fu32_Addr, uint32_t fu32_Data);
  31. #endif