Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_EXFLASH_H__
53 #define __GR55xx_HAL_EXFLASH_H__
212 #define HAL_EXFLASH_ERROR_NONE ((uint32_t)0x00000000)
213 #define HAL_EXFLASH_ERROR_TIMEOUT ((uint32_t)0x00000001)
214 #define HAL_EXFLASH_ERROR_TRANSFER ((uint32_t)0x00000002)
215 #define HAL_EXFLASH_ERROR_ID ((uint32_t)0x00000003)
216 #define HAL_EXFLASH_ERROR_QUAD ((uint32_t)0x00000004)
217 #define HAL_EXFLASH_ERROR_INVALID_PARAM ((uint32_t)0x00000008)
223 #define EXFLASH_ERASE_SECTOR 0
224 #define EXFLASH_ERASE_CHIP 1
230 #define EXFLASH_SINGLE_PAGE_TYPE 0
231 #define EXFLASH_DUAL_PAGE_TYPE 1
232 #define EXFLASH_QUAD_PAGE_TYPE 2
239 #define EXFLASH_SIZE_PAGE_BYTES ((uint32_t)256)
240 #define EXFLASH_SIZE_SECTOR_BYTES ((uint32_t)4096)
241 #define EXFLASH_SIZE_CHIP_BYTES ((uint32_t)0x1000000)
242 #define EXFLASH_START_ADDR FLASH_BASE
243 #define EXFLASH_SIZE GR55XX_FLASH_SIZE
244 #define EXFLASH_END_ADDR (EXFLASH_START_ADDR + EXFLASH_SIZE)
245 #define EXFLASH_ALIAS_OFFSET (0x02000000UL)
246 #define EXFLASH_ALIAS_ADDR (EXFLASH_START_ADDR + EXFLASH_ALIAS_OFFSET)
252 #define EXFLASH_LOCK_AREA_NONE 0
253 #define EXFLASH_LOCK_AREA_UPPER_1_8 1
254 #define EXFLASH_LOCK_AREA_UPPER_1_4 2
255 #define EXFLASH_LOCK_AREA_UPPER_1_2 3
256 #define EXFLASH_LOCK_AREA_LOWER_1_8 9
257 #define EXFLASH_LOCK_AREA_LOWER_1_4 10
258 #define EXFLASH_LOCK_AREA_LOWER_1_2 11
259 #define EXFLASH_LOCK_AREA_ALL 12
260 #define EXFLASH_LOCK_AREA_TOP_4K 17
261 #define EXFLASH_LOCK_AREA_TOP_8K 18
262 #define EXFLASH_LOCK_AREA_TOP_16K 19
263 #define EXFLASH_LOCK_AREA_TOP_32K 20
264 #define EXFLASH_LOCK_AREA_BOTTOM_4K 25
265 #define EXFLASH_LOCK_AREA_BOTTOM_8K 26
266 #define EXFLASH_LOCK_AREA_BOTTOM_16K 27
267 #define EXFLASH_LOCK_AREA_BOTTOM_32K 28
268 #define EXFLASH_LOCK_AREA_LOWER_7_8 33
269 #define EXFLASH_LOCK_AREA_LOWER_3_4 34
270 #define EXFLASH_LOCK_AREA_UPPER_7_8 41
271 #define EXFLASH_LOCK_AREA_UPPER_3_4 42
272 #define EXFLASH_LOCK_AREA_LOWER_127_128 49
273 #define EXFLASH_LOCK_AREA_LOWER_63_64 50
274 #define EXFLASH_LOCK_AREA_LOWER_31_32 51
275 #define EXFLASH_LOCK_AREA_LOWER_15_16 52
276 #define EXFLASH_LOCK_AREA_UPPER_127_128 57
277 #define EXFLASH_LOCK_AREA_UPPER_63_64 58
278 #define EXFLASH_LOCK_AREA_UPPER_31_32 59
279 #define EXFLASH_LOCK_AREA_UPPER_15_16 60
285 #define HAL_EXFLASH_RETRY_DEFAULT_VALUE ((uint32_t)40000)
299 #define __HAL_EXFLASH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_EXFLASH_STATE_RESET)
304 #define __HAL_EXFLASH_POWER_ON() ll_xqspi_enable_exflash_power()
309 #define __HAL_EXFLASH_POWER_OFF() ll_xqspi_disable_exflash_power()
314 #define __HAL_EXFLASH_POWER_IS_ON() ll_xqspi_is_enable_exflash_power()
329 #define IS_EXFLASH_ERASE_TYPE(__TYPE__) (((__TYPE__) == EXFLASH_ERASE_SECTOR) || \
330 ((__TYPE__) == EXFLASH_ERASE_CHIP))
338 #define IS_EXFLASH_LOCK_AREA(__AREA__) (((__AREA__) == EXFLASH_LOCK_AREA_NONE) || \
339 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_1_8) || \
340 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_1_4) || \
341 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_1_2) || \
342 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_1_8) || \
343 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_1_4) || \
344 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_1_2) || \
345 ((__AREA__) == EXFLASH_LOCK_AREA_ALL) || \
346 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_4K) || \
347 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_8K) || \
348 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_16K) || \
349 ((__AREA__) == EXFLASH_LOCK_AREA_TOP_32K) || \
350 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_4K) || \
351 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_8K) || \
352 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_16K) || \
353 ((__AREA__) == EXFLASH_LOCK_AREA_BOTTOM_32K) || \
354 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_7_8) || \
355 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_3_4) || \
356 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_7_8) || \
357 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_3_4) || \
358 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_127_128) || \
359 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_63_64) || \
360 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_31_32) || \
361 ((__AREA__) == EXFLASH_LOCK_AREA_LOWER_15_16) || \
362 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_127_128) || \
363 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_63_64) || \
364 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_31_32) || \
365 ((__AREA__) == EXFLASH_LOCK_AREA_UPPER_15_16))
hal_status_t hal_exflash_erase(uint32_t erase_type, uint32_t addr, uint32_t size)
Erase flash region.
struct _exflash_timing_param exflash_timing_param_t
exFlash AC characteristics
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.
ll_xqspi_hp_init_t exflash_hp_init_t
HP Mode structure definition.
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
void(* exflash_msp_init)(void)
@ 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_EXFLASH Callback function definition.
hal_status_t hal_exflash_enable_quad(exflash_hp_init_t *hp_init)
Enable Quad mode to allow Quad operation.
hal_exflash_security_t hal_exflash_get_security(void)
Read the security mode of flash interface.
@ HAL_EXFLASH_STATE_BUSY_WRITE
@ HAL_EXFLASH_STATE_BUSY_READ
XQSPI handle Structure definition.
exFlash AC characteristics
struct _exflash_callback exflash_callback_t
HAL_EXFLASH Callback function definition.
__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_status_t
HAL Status structures definition.
void(* exflash_msp_deinit)(void)
Header file containing functions prototypes of XQSPI HAL library.
hal_status_t hal_exflash_resume(void)
Resume flash pragram/erase.
Header file containing functions prototypes of XQSPI LL library.
exFlash handle Structure definition
hal_exflash_security_t
HAL exFlash Security Enumerations 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.
@ 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_EXFLASH_UNENCRYPTED
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.