ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
hal_nor_flash.h
См. документацию.
1
12#ifndef HAL_NOR_FLASH_H
13#define HAL_NOR_FLASH_H
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#include "hal_common.h"
20#include "hal_qspi.h"
21
22#if QSPI_USE_DMAC
23#include "hal_qspi_dma.h"
24#endif
25
26#define DUMMY_BYTE 0x00
33#define FLASH_STAT_BUSY (1 << 0)
34#define FLASH_STAT_WEL (1 << 1)
53
63
67typedef struct _nor_config {
70 QSPI_Type *driver_base_addr;
71#if defined(QSPI_DRIVER_VERSION_1_6_0)
72 QSPI_XIP_Type *driver_xip_base_addr;
73#endif
75
79typedef struct _nor_handle {
80 QSPI_Type *driver_base_addr;
81#if defined(QSPI_DRIVER_VERSION_1_6_0)
82 QSPI_XIP_Type *driver_xip_base_addr;
83#endif
84 uint32_t page_size_bytes;
94
101
108
115#if defined(QSPI_DRIVER_VERSION_1_6_0)
116nor_status_t QSPI_ConfigureXIP(QSPI_XIP_Type *base,
117 qspi_xip_config_t *qspi_xip_config);
118#elif defined(QSPI_DRIVER_VERSION_2_0_0)
119nor_status_t QSPI_ConfigureXIP(QSPI_Type *base,
120 qspi_xip_config_t *qspi_xip_config);
121#else
122 #error "Please define QSPI controller version"
123#endif
124
131
138
152
165nor_status_t NOR_FlashRead(nor_handle_t *handle, uint32_t address,
166 uint8_t *buffer, uint32_t length);
167
181 uint8_t *buffer, uint32_t length);
182
196 uint32_t size);
197
208
216void NOR_FlashReadXIP(uint32_t address, uint8_t *buffer, uint32_t length);
217
231 uint32_t address, uint8_t *page_pointer, uint32_t length);
232
233#if QSPI_USE_DMAC
234void QSPI_SetDMAHandle(qspi_dma_handle_t *handle);
235#endif
236
237#ifdef __cplusplus
238}
239#endif
240
241#endif /* HAL_NOR_FLASH_H */
242
struct _nor_config nor_config_t
Структура первичной конфигурации флеш-памяти NOR.
struct _nor_handle nor_handle_t
Контекст драйвера флеш-памяти NOR.
void NOR_FlashReadXIP(uint32_t address, uint8_t *buffer, uint32_t length)
Чтение в режиме XIP.
nor_status_t NOR_FlashEraseBlock(nor_handle_t *handle, uint32_t address, uint32_t size)
Очистка блока памяти
nor_status_t NOR_FlashProgramBlock(nor_handle_t *handle, uint32_t address, uint8_t *page_pointer, uint32_t length)
Заполнение блока флеш-памяти NOR.
void QSPI_GetDefaultCommandSet(nor_command_set_t *command_set)
Получение стандартного набора комманд SPI Flash.
nor_status_t NOR_FlashEraseChip(nor_handle_t *handle)
Очистка чипа флеш-памяти NOR.
struct _nor_command_set nor_command_set_t
Основной набор команд для флеш-памяти NOR.
nor_status_t NOR_FlashRead(nor_handle_t *handle, uint32_t address, uint8_t *buffer, uint32_t length)
Чтение данных с флеш-памяти NOR.
void QSPI_DisableXIP(nor_handle_t *handle)
Выключение режима QSPI XIP.
void QSPI_GetDefaultConfigXIP(qspi_xip_config_t *qspi_xip_config)
Получение конфигурации XIP QSPI по умолчанию
nor_status_t
Статусы драйвера флеш-памяти NOR.
Definition hal_nor_flash.h:57
nor_status_t QSPI_EnableXIP(nor_handle_t *handle)
Заполнение регистра XIPCFG контроллера QSPI.
nor_status_t QSPI_NorFlashInit(nor_config_t *config, nor_handle_t *handle)
Инициализация устройства флеш-памяти NOR.
nor_status_t NOR_FlashPageProgram(nor_handle_t *handle, uint32_t address, uint8_t *buffer, uint32_t length)
Программирование страницы флеш-памяти NOR.
@ NOR_Status_Fail
Definition hal_nor_flash.h:59
@ NOR_Status_Timeout
Definition hal_nor_flash.h:61
@ NOR_Status_InvalidArgument
Definition hal_nor_flash.h:60
@ NOR_Status_Success
Definition hal_nor_flash.h:58
Интерфейс драйвера модуля QSPI.
Дополнение драйвера QSPI для обмена данными с помощью DMA.
Основной набор команд для флеш-памяти NOR.
Definition hal_nor_flash.h:43
uint8_t erase_chip_cmd
Definition hal_nor_flash.h:51
uint8_t erase_sector_cmd
Definition hal_nor_flash.h:50
uint8_t write_enable_cmd
Definition hal_nor_flash.h:49
uint8_t page_write_memory_cmd
Definition hal_nor_flash.h:45
uint8_t read_memory_command
Definition hal_nor_flash.h:46
uint8_t read_status_cmd
Definition hal_nor_flash.h:48
uint8_t write_status_cmd
Definition hal_nor_flash.h:44
uint8_t write_disable_cmd
Definition hal_nor_flash.h:47
Структура первичной конфигурации флеш-памяти NOR.
Definition hal_nor_flash.h:67
QSPI_Type * driver_base_addr
Definition hal_nor_flash.h:70
void * quad_control_config
Definition hal_nor_flash.h:69
void * mem_control_config
Definition hal_nor_flash.h:68
Контекст драйвера флеш-памяти NOR.
Definition hal_nor_flash.h:79
QSPI_Type * driver_base_addr
Definition hal_nor_flash.h:80
qspi_config_t qspi_config
Definition hal_nor_flash.h:92
qspi_xip_config_t xip_config
Definition hal_nor_flash.h:91
uint32_t sector_size_bytes
Definition hal_nor_flash.h:85
uint32_t max_sector_erase_time
Definition hal_nor_flash.h:87
uint32_t memory_size_bytes
Definition hal_nor_flash.h:86
uint32_t max_page_program_time
Definition hal_nor_flash.h:88
void * device_specific
Definition hal_nor_flash.h:90
uint32_t page_size_bytes
Definition hal_nor_flash.h:84
uint32_t max_chip_erase_time
Definition hal_nor_flash.h:89
Количество бит во фрейме
Definition hal_qspi.h:103
Структура параметров конфигурации XIP контроллера QSPI.
Definition hal_qspi.h:126
Дескриптор QSPI-DMA передачи
Definition hal_qspi_dma.h:25