Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_EXFLASH_H__
53 #define __GR55xx_HAL_EXFLASH_H__
197 #define HAL_EXFLASH_ERROR_NONE ((uint32_t)0x00000000)
198 #define HAL_EXFLASH_ERROR_TIMEOUT ((uint32_t)0x00000001)
199 #define HAL_EXFLASH_ERROR_TRANSFER ((uint32_t)0x00000002)
200 #define HAL_EXFLASH_ERROR_ID ((uint32_t)0x00000003)
201 #define HAL_EXFLASH_ERROR_QUAD ((uint32_t)0x00000004)
202 #define HAL_EXFLASH_ERROR_INVALID_PARAM ((uint32_t)0x00000008)
208 #define EXFLASH_ERASE_SECTOR 0
209 #define EXFLASH_ERASE_CHIP 1
215 #define EXFLASH_SINGLE_PAGE_TYPE 0
216 #define EXFLASH_DUAL_PAGE_TYPE 1
217 #define EXFLASH_QUAD_PAGE_TYPE 2
224 #define EXFLASH_SIZE_PAGE_BYTES ((uint32_t)256)
225 #define EXFLASH_SIZE_SECTOR_BYTES ((uint32_t)4096)
226 #define EXFLASH_SIZE_CHIP_BYTES ((uint32_t)0x1000000)
227 #define EXFLASH_START_ADDR FLASH_BASE
228 #define EXFLASH_SIZE GR55XX_FLASH_SIZE
229 #define EXFLASH_END_ADDR (EXFLASH_START_ADDR + EXFLASH_SIZE)
230 #define EXFLASH_ALIAS_OFFSET (0x02000000UL)
231 #define EXFLASH_ALIAS_ADDR (EXFLASH_START_ADDR + EXFLASH_ALIAS_OFFSET)
237 #define EXFLASH_LOCK_AREA_NONE 0
238 #define EXFLASH_LOCK_AREA_UPPER_1_8 1
239 #define EXFLASH_LOCK_AREA_UPPER_1_4 2
240 #define EXFLASH_LOCK_AREA_UPPER_1_2 3
241 #define EXFLASH_LOCK_AREA_LOWER_1_8 9
242 #define EXFLASH_LOCK_AREA_LOWER_1_4 10
243 #define EXFLASH_LOCK_AREA_LOWER_1_2 11
244 #define EXFLASH_LOCK_AREA_ALL 12
245 #define EXFLASH_LOCK_AREA_TOP_4K 17
246 #define EXFLASH_LOCK_AREA_TOP_8K 18
247 #define EXFLASH_LOCK_AREA_TOP_16K 19
248 #define EXFLASH_LOCK_AREA_TOP_32K 20
249 #define EXFLASH_LOCK_AREA_BOTTOM_4K 25
250 #define EXFLASH_LOCK_AREA_BOTTOM_8K 26
251 #define EXFLASH_LOCK_AREA_BOTTOM_16K 27
252 #define EXFLASH_LOCK_AREA_BOTTOM_32K 28
253 #define EXFLASH_LOCK_AREA_LOWER_7_8 33
254 #define EXFLASH_LOCK_AREA_LOWER_3_4 34
255 #define EXFLASH_LOCK_AREA_UPPER_7_8 41
256 #define EXFLASH_LOCK_AREA_UPPER_3_4 42
257 #define EXFLASH_LOCK_AREA_LOWER_127_128 49
258 #define EXFLASH_LOCK_AREA_LOWER_63_64 50
259 #define EXFLASH_LOCK_AREA_LOWER_31_32 51
260 #define EXFLASH_LOCK_AREA_LOWER_15_16 52
261 #define EXFLASH_LOCK_AREA_UPPER_127_128 57
262 #define EXFLASH_LOCK_AREA_UPPER_63_64 58
263 #define EXFLASH_LOCK_AREA_UPPER_31_32 59
264 #define EXFLASH_LOCK_AREA_UPPER_15_16 60
270 #define HAL_EXFLASH_RETRY_DEFAULT_VALUE ((uint32_t)40000)
284 #define __HAL_EXFLASH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_EXFLASH_STATE_RESET)
289 #define __HAL_EXFLASH_POWER_ON() ll_xqspi_enable_exflash_power()
294 #define __HAL_EXFLASH_POWER_OFF() ll_xqspi_disable_exflash_power()
299 #define __HAL_EXFLASH_POWER_IS_ON() ll_xqspi_is_enable_exflash_power()
313 #define IS_EXFLASH_ERASE_TYPE(__TYPE__) (((__TYPE__) == EXFLASH_ERASE_SECTOR) || \
314 ((__TYPE__) == EXFLASH_ERASE_CHIP))
321 #define IS_EXFLASH_LOCK_AREA(__AREA__) (((__AREA__) == EXFLASH_LOCK_AREA_NONE) || \
322 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_1_8) || \
323 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_1_4) || \
324 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_1_2) || \
325 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_1_8) || \
326 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_1_4) || \
327 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_1_2) || \
328 ((__AREA__) == EXFLASH_LOCK_AREA_ALL) || \
329 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_4K) || \
330 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_8K) || \
331 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_16K) || \
332 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_32K) || \
333 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_4K) || \
334 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_8K) || \
335 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_16K) || \
336 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_32K) || \
337 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_7_8) || \
338 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_3_4) || \
339 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_7_8) || \
340 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_3_4) || \
341 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_127_128) || \
342 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_63_64) || \
343 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_31_32) || \
344 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_15_16) || \
345 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_127_128) || \
346 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_63_64) || \
347 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_31_32) || \
348 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_15_16))
struct _exflash_timing_param exflash_timing_param_t
exFlash AC characteristics
hal_status_t hal_exflash_erase(uint32_t erase_type, uint32_t addr, uint32_t size)
Erase flash region.
hal_status_t hal_exflash_write(uint32_t addr, uint8_t *p_data, uint32_t size)
Write an amount of data with specified instruction and address to flash.
hal_lock_t
HAL Lock structures definition.
hal_status_t hal_exflash_page_configure(uint32_t size_type)
Configure page programming buffer size.
void hal_exflash_msp_init(void)
Initialize the exFlash MSP.
void hal_exflash_set_security(hal_exflash_security_t mode)
Configure the security mode of flash interface.
@ HAL_EXFLASH_STATE_RESET
@ HAL_EXFLASH_STATE_ERROR
hal_status_t hal_exflash_unlock(void)
Unlock write/erase protected in flash.
hal_status_t hal_exflash_wakeup(void)
exFlash will be released from Deep Power-Down Mode.
void hal_exflash_timing_set(exflash_timing_param_t *p_time)
According to the model of internal flash, configure AC parameters to meet the requirements of flash o...
void hal_exflash_msp_deinit(void)
De-initialize the exFlash MSP.
XQSPI High Performance mode init structures definition.
struct _exflash_handle exflash_handle_t
exFlash handle Structure definition
hal_status_t hal_exflash_suspend(void)
Suspend flash pragram/erase.
hal_status_t hal_exflash_read_status_reg(uint16_t *p_reg_status)
This function reads the status register of a flash.
hal_status_t hal_exflash_enable_quad(exflash_hp_init_t *hp_init)
Enable Quad mode to allow Quad operation.
void(* exflash_msp_deinit)(void)
hal_exflash_security_t hal_exflash_get_security(void)
Read the security mode of flash interface.
ll_xqspi_hp_init_t exflash_hp_init_t
HP Mode structure definition.
@ HAL_EXFLASH_STATE_BUSY_WRITE
@ HAL_EXFLASH_STATE_BUSY_READ
@ HAL_EXFLASH_UNENCRYPTED
XQSPI handle Structure definition.
struct _hal_exflash_callback hal_exflash_callback_t
HAL_EXFLASH Callback function definition.
exFlash AC characteristics
__IO hal_exflash_state_t state
hal_status_t hal_exflash_operation_protection(uint32_t base_priority)
During Flash erase/write operation, Disable external interrupts with a priority less than or equal to...
hal_status_t hal_exflash_init(void)
Initialize the exFlash according to the specified parameters in the exflash_init_t and initialize the...
@ HAL_EXFLASH_STATE_READY
hal_exflash_security_t
HAL exFlash Security Enumerations definition.
hal_status_t
HAL Status structures definition.
HAL_EXFLASH Callback function definition.
Header file containing functions prototypes of XQSPI HAL library.
hal_status_t hal_exflash_resume(void)
Resume flash pragram/erase.
hal_status_t hal_exflash_write_status_reg(uint16_t reg_status)
This function writes the status register of a flash.
Header file containing functions prototypes of XQSPI LL library.
exFlash handle Structure definition
hal_status_t hal_exflash_read_uid(uint8_t *uid)
This function serves to read UID of flash.
uint32_t hal_exflash_get_error(void)
Return the exFlash error code.
hal_exflash_state_t hal_exflash_get_state(void)
Return the exFlash handle state.
void(* exflash_msp_init)(void)
@ HAL_EXFLASH_STATE_SUSPEND_WRITE
__IO hal_exflash_security_t security
hal_status_t hal_exflash_deepsleep(void)
the exFlash will go to the Deep Power-Down Mode.
hal_exflash_state_t
HAL exFlash State Enumerations definition.
This file contains HAL common definitions, enumeration, macros and structures definitions.
hal_status_t hal_exflash_read(uint32_t addr, uint8_t *p_data, uint32_t size)
Read an amount of data with specified instruction and address from flash.
@ HAL_EXFLASH_STATE_BUSY_ERASE
hal_status_t hal_exflash_lock(uint32_t lock_type)
Lock area of flash to be software protected against Write and Erase operation.
@ HAL_EXFLASH_STATE_SUSPEND_ERASE
hal_status_t hal_exflash_deinit(void)
De-initialize the exFlash peripheral.