|
ELIOT1 HAL
|
Драйвер контроллера QSPI. Подробнее...
Файлы | |
| файл | hal_nor_flash.h |
| Интерфейс драйвера флеш-памяти NOR. | |
| файл | hal_qspi.h |
| Интерфейс драйвера модуля QSPI. | |
| файл | hal_qspi_dma.h |
| Дополнение драйвера QSPI для обмена данными с помощью DMA. | |
| файл | hal_qspi_nor_flash.h |
| Интерфейс драйвера модуля QSPI-NOR-FLASH. | |
Структуры данных | |
| struct | _nor_command_set |
| Основной набор команд для флеш-памяти NOR. Подробнее... | |
| struct | _nor_config |
| Структура первичной конфигурации флеш-памяти NOR. Подробнее... | |
| struct | _nor_handle |
| Контекст драйвера флеш-памяти NOR. Подробнее... | |
| struct | _qspi_config |
| Количество бит во фрейме Подробнее... | |
| struct | _qspi_xip_config |
| Структура параметров конфигурации XIP контроллера QSPI. Подробнее... | |
| struct | qspi_dma_handle_t |
| Дескриптор QSPI-DMA передачи Подробнее... | |
| struct | _qspi_nor_config |
| Конфигурационный блок для режима Quad. Подробнее... | |
| struct | _qspi_nor_init_config |
| Первоначальная конфигурация QSPI. Подробнее... | |
| struct | _qspi_nor_handle |
| Контекст драйвера NOR Flash. Подробнее... | |
Макросы | |
| #define | DUMMY_BYTE 0x00 |
Определения типов | |
| typedef struct _nor_command_set | nor_command_set_t |
| Основной набор команд для флеш-памяти NOR. | |
| typedef struct _nor_config | nor_config_t |
| Структура первичной конфигурации флеш-памяти NOR. | |
| typedef struct _nor_handle | nor_handle_t |
| Контекст драйвера флеш-памяти NOR. | |
| typedef enum _qspi_qmode | qspi_qmode_t |
| Режим работы контроллера QSPI. | |
| typedef struct _qspi_config | qspi_config_t |
| Количество бит во фрейме | |
| typedef struct _qspi_xip_config | qspi_xip_config_t |
| Структура параметров конфигурации XIP контроллера QSPI. | |
| typedef struct _qspi_nor_config | qspi_nor_config_t |
| Конфигурационный блок для режима Quad. | |
| typedef enum _qspi_command_format | qspi_command_format_t |
| Формат команды QSPI. | |
| typedef struct _qspi_nor_init_config | qspi_nor_init_config_t |
| Первоначальная конфигурация QSPI. | |
| typedef enum _qspi_command_type | qspi_command_type_t |
| Тип команды QSPI. | |
| typedef struct _qspi_nor_handle | qspi_nor_handle_t |
| Контекст драйвера NOR Flash. | |
Перечисления | |
| enum | nor_status_t |
| Статусы драйвера флеш-памяти NOR. Подробнее... | |
| enum | _qspi_qmode |
| Режим работы контроллера QSPI. Подробнее... | |
| enum | qspi_dma_status_t |
| Статусы выполнения функций Подробнее... | |
| enum | _serial_nor_command |
| Коды операций микросхемы флеш-памяти Подробнее... | |
| enum | |
| Требования для включение режима Quad. Подробнее... | |
| enum | _qspi_command_format |
| Формат команды QSPI. Подробнее... | |
| enum | _qspi_command_type |
| Тип команды QSPI. Подробнее... | |
Функции | |
| void | QSPI_GetDefaultConfigXIP (qspi_xip_config_t *qspi_xip_config) |
| Получение конфигурации XIP QSPI по умолчанию | |
| void | QSPI_GetDefaultCommandSet (nor_command_set_t *command_set) |
| Получение стандартного набора комманд SPI Flash. | |
| nor_status_t | QSPI_EnableXIP (nor_handle_t *handle) |
| Заполнение регистра XIPCFG контроллера QSPI. | |
| void | QSPI_DisableXIP (nor_handle_t *handle) |
| Выключение режима QSPI XIP. | |
| nor_status_t | QSPI_NorFlashInit (nor_config_t *config, nor_handle_t *handle) |
| Инициализация устройства флеш-памяти NOR. | |
| nor_status_t | NOR_FlashRead (nor_handle_t *handle, uint32_t address, uint8_t *buffer, uint32_t length) |
| Чтение данных с флеш-памяти NOR. | |
| nor_status_t | NOR_FlashPageProgram (nor_handle_t *handle, uint32_t address, uint8_t *buffer, uint32_t length) |
| Программирование страницы флеш-памяти NOR. | |
| nor_status_t | NOR_FlashEraseBlock (nor_handle_t *handle, uint32_t address, uint32_t size) |
| Очистка блока памяти | |
| nor_status_t | NOR_FlashEraseChip (nor_handle_t *handle) |
| Очистка чипа флеш-памяти NOR. | |
| void | NOR_FlashReadXIP (uint32_t address, uint8_t *buffer, uint32_t length) |
| Чтение в режиме XIP. | |
| nor_status_t | NOR_FlashProgramBlock (nor_handle_t *handle, uint32_t address, uint8_t *page_pointer, uint32_t length) |
| Заполнение блока флеш-памяти NOR. | |
| uint32_t | QSPI_GetInstance (QSPI_Type *base) |
| Получение номера блока QSPI. | |
| void | QSPI_GetDefaultConfig (qspi_config_t *config) |
| Получение конфигурации QSPI по умолчанию | |
| void | QSPI_Init (QSPI_Type *base, const qspi_config_t *config) |
| Инициализация контроллера QSPI. | |
| void | QSPI_SetBitSize (QSPI_Type *base, qspi_bit_size_t bit_size) |
| Установка количества передаваемых бит | |
| void | QSPI_SetQMode (QSPI_Type *base, qspi_qmode_t spi_mode) |
| Установка режима SPI. | |
| void | QSPI_SetInhibitDin (QSPI_Type *base, bool inhibit_din) |
| Установка запрета записи в Tx FIFO. | |
| void | QSPI_SetInhibitDout (QSPI_Type *base, bool inhibit_dout) |
| Установка запрета чтения из Rx FIFO. | |
| static void | QSPI_Enable (QSPI_Type *base) |
| Включение контроллера QSPI. | |
| static void | QSPI_DeInit (QSPI_Type *base) |
| Деинициализация контроллера QSPI. | |
| static void | QSPI_EnableDMA (QSPI_Type *base) |
| Включение DMA. | |
| static void | QSPI_DisableDMA (QSPI_Type *base) |
| Выключение DMA. | |
| static uint32_t | QSPI_GetStatusFlag (QSPI_Type *base) |
| Получение значения статусного регистра | |
| static void | QSPI_SetSlaveSelect (QSPI_Type *base, uint32_t slave_select) |
| Переключение ведомого устройства | |
| static void | QSPI_EnableInterrupt (QSPI_Type *base, uint32_t mask) |
| Включение прерываний | |
| static void | QSPI_DisableInterrupt (QSPI_Type *base, uint32_t mask) |
| Отключение прерываний | |
| static void | QSPI_ClearInterrupt (QSPI_Type *base, uint32_t mask) |
| Сброс прерываний | |
| static void | QSPI_WriteData (QSPI_Type *base, uint32_t data) |
| Передача 32-битного слова в Tx FIFO. | |
| static void | QSPI_WriteDataByte (QSPI_Type *base, uint8_t data) |
| Передача байта данных в Tx FIFO. | |
| static uint32_t | QSPI_ReadData (QSPI_Type *base) |
| Чтение 32-битного слова из Rx FIFO. | |
| static uint8_t | QSPI_ReadDataByte (QSPI_Type *base) |
| Чтение байта данных из Rx FIFO. | |
| static uint32_t | QSPI_GetTXLVL (QSPI_Type *base) |
| Чтение уровня заполнения буфера передачи Tx FIFO. | |
| static uint32_t | QSPI_GetRXLVL (QSPI_Type *base) |
| Чтение уровня заполнения буфера приема Rx FIFO. | |
| void | QSPI_TransferCreateHandleDMA (QSPI_Type *base, qspi_dma_handle_t *handle, dma_handle_t *tx_handle, dma_handle_t *rx_handle) |
| Инициализация контекста передачи QSPI-DMA. | |
| qspi_dma_status_t | QSPI_WriteDataDMA (qspi_dma_handle_t *handle, void *addr, uint8_t incr, uint8_t transfer_width, uint32_t size) |
| Запись данных в QSPI TX. | |
| qspi_dma_status_t | QSPI_ReadDataDMA (qspi_dma_handle_t *handle, void *addr, uint8_t incr, uint8_t transfer_width, uint32_t size) |
| Чтение данных из QSPI RX. | |
| uint32_t | QSPI_GetReadDMADescriptorsCount (uint32_t size_in_bytes) |
| Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти | |
| void | QSPI_DMAReadDescriptorInitRX (QSPI_Type *base, dma_descriptor_t *desc, uint32_t data_size, void *dst_addr, uint8_t dst_addr_incr) |
| Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер. | |
| static uint32_t | QSPI_GetDummyDMADescriptorsCount (uint32_t size_in_bytes) |
| Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти при посылке фиктивных данных | |
| static void | QSPI_DMADescriptorInitTX (QSPI_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint32_t data_width, void *src_addr, uint8_t src_addr_incr) |
| Инициализация группы дескрипторов DMA (многоблочная передача) для отправки данных в TX буфер. | |
| static void | QSPI_DMADescriptorInitRX (QSPI_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint32_t data_width, void *dst_addr) |
| Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер. | |
Поля внутреннего статусного регистра | |
| #define | FLASH_STAT_BUSY (1 << 0) |
| #define | FLASH_STAT_WEL (1 << 1) |
Драйвер контроллера QSPI.
Драйвер поддерживает обмен данными с устройствами, подключенными к выходам QSPI в режимах Normal, Dual, Quad SPI и шириной поля данных от 4 до 32 битов.
Работа контроллера QSPI с флеш-памятью NOR.
| #define DUMMY_BYTE 0x00 |
Фиктивные данные
| #define FLASH_STAT_BUSY (1 << 0) |
Производится очистка/запись
| #define FLASH_STAT_WEL (1 << 1) |
Бит Write Enable Latch
| typedef struct _qspi_config qspi_config_t |
Количество бит во фрейме
Структура, определяющая параметры конфигурации контроллера QSPI
| anonymous enum |
Требования для включение режима Quad.
Указывает смещение бита Quad Enable.
| enum _qspi_command_format |
| enum _qspi_command_type |
Тип команды QSPI.
| enum _qspi_qmode |
| enum _serial_nor_command |
Коды операций микросхемы флеш-памяти
| enum nor_status_t |
| enum qspi_dma_status_t |
| nor_status_t NOR_FlashEraseBlock | ( | nor_handle_t * | handle, |
| uint32_t | address, | ||
| uint32_t | size ) |
Очистка блока памяти
| handle | Контекст драйвера флеш-памяти NOR |
| address | Начальный адрес для очистки |
| size | Размер блока для очистки |
| NOR_Status_Success | |
| NOR_Status_Fail | |
| NOR_Status_InvalidArgument | |
| NOR_Status_Timeout |
| nor_status_t NOR_FlashEraseChip | ( | nor_handle_t * | handle | ) |
Очистка чипа флеш-памяти NOR.
| handle | Контекст драйвера флеш-памяти NOR |
| NOR_Status_Success | |
| NOR_Status_InvalidArgument | |
| NOR_Status_Timeout |
| nor_status_t NOR_FlashPageProgram | ( | nor_handle_t * | handle, |
| uint32_t | address, | ||
| uint8_t * | buffer, | ||
| uint32_t | length ) |
Программирование страницы флеш-памяти NOR.
| handle | Контекст драйвера флеш-памяти NOR |
| address | Адрес программируемой страницы |
| buffer | Буфер памяти |
| NOR_Status_Success | |
| NOR_Status_Fail | |
| NOR_Status_InvalidArgument | |
| NOR_Status_Timeout |
| nor_status_t NOR_FlashProgramBlock | ( | nor_handle_t * | handle, |
| uint32_t | address, | ||
| uint8_t * | page_pointer, | ||
| uint32_t | length ) |
Заполнение блока флеш-памяти NOR.
| handle | Контекст драйвера NOR Flash |
| address | Адрес блока для записи |
| page_pointer | Указатель на буфер для записи |
| length | Размер буфера для записи |
| NOR_Status_Success | |
| NOR_Status_Fail | |
| NOR_Status_InvalidArgument |
| nor_status_t NOR_FlashRead | ( | nor_handle_t * | handle, |
| uint32_t | address, | ||
| uint8_t * | buffer, | ||
| uint32_t | length ) |
Чтение данных с флеш-памяти NOR.
| handle | Контекст драйвера флеш-памяти NOR |
| address | Начальный адрес памяти |
| buffer | Буфер памяти |
| length | Размер данных в байтах |
| NOR_Status_Success | |
| NOR_Status_Fail | |
| NOR_Status_InvalidArgument |
| void NOR_FlashReadXIP | ( | uint32_t | address, |
| uint8_t * | buffer, | ||
| uint32_t | length ) |
Чтение в режиме XIP.
| address | Адрес чтения XIP |
| buffer | Буфер записи прочитанных данных |
| length | Размер буфера для чтения |
|
inlinestatic |
Сброс прерываний
| base | Базовый адрес контроллера QSPI |
| mask | Маска прерываний |
|
inlinestatic |
Деинициализация контроллера QSPI.
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Выключение DMA.
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Отключение прерываний
| base | Базовый адрес контроллера QSPI |
| mask | Маска прерываний |
| void QSPI_DisableXIP | ( | nor_handle_t * | handle | ) |
Выключение режима QSPI XIP.
| handle | Контекст драйвера флеш-памяти NOR |
|
inlinestatic |
Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер.
| base | Базовый адрес DMA |
| desc | Указатель на массив дескрипторов DMA |
| data_size | Общий размер передаваемых данных |
| dst_addr | Адрес Приемника |
| src_addr_incr | Инкремент адреса |
|
inlinestatic |
Инициализация группы дескрипторов DMA (многоблочная передача) для отправки данных в TX буфер.
| base | Базовый адрес DMA |
| desc | Указатель на массив дескрипторов DMA |
| count | Число дескрипторов многоблочной передачи |
| data_size | Общий размер передаваемых данных |
| data_width | Размер одного слова данных |
| src_addr | Адрес Источника |
| void QSPI_DMAReadDescriptorInitRX | ( | QSPI_Type * | base, |
| dma_descriptor_t * | desc, | ||
| uint32_t | data_size, | ||
| void * | dst_addr, | ||
| uint8_t | dst_addr_incr ) |
Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер.
| base | Базовый адрес DMA |
| desc | Указатель на массив дескрипторов DMA |
| data_size | Общий размер передаваемых данных |
| dst_addr | Адрес Приемника |
| src_addr_incr | Инкремент адреса |
|
inlinestatic |
Включение контроллера QSPI.
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Включение DMA.
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Включение прерываний
| base | Базовый адрес контроллера QSPI |
| mask | Маска прерываний |
| nor_status_t QSPI_EnableXIP | ( | nor_handle_t * | handle | ) |
Заполнение регистра XIPCFG контроллера QSPI.
| base | Базовый адрес контроллера QSPI |
| qspi_xip_config | Конфигурационная структура режима XIP QSPI |
Включение и конфигурация режима QSPI XIP
| handle | Контекст драйвера флеш-памяти NOR |
| void QSPI_GetDefaultCommandSet | ( | nor_command_set_t * | command_set | ) |
Получение стандартного набора комманд SPI Flash.
| command_set | Набор команд SPI Flash |
| void QSPI_GetDefaultConfig | ( | qspi_config_t * | config | ) |
Получение конфигурации QSPI по умолчанию
| config | Конфигурационная структура QSPI |
| void QSPI_GetDefaultConfigXIP | ( | qspi_xip_config_t * | qspi_xip_config | ) |
Получение конфигурации XIP QSPI по умолчанию
| qspi_xip_config | Конфигурационная структура режима XIP QSPI |
|
inlinestatic |
Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти при посылке фиктивных данных
| size_in_bytes | Число данных в байтах |
| uint32_t QSPI_GetInstance | ( | QSPI_Type * | base | ) |
Получение номера блока QSPI.
| base | Адрес QSPI |
| uint32_t QSPI_GetReadDMADescriptorsCount | ( | uint32_t | size_in_bytes | ) |
Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти
| size_in_bytes | Число данных в байтах |
|
inlinestatic |
Чтение уровня заполнения буфера приема Rx FIFO.
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Получение значения статусного регистра
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Чтение уровня заполнения буфера передачи Tx FIFO.
| base | Базовый адрес контроллера QSPI |
| void QSPI_Init | ( | QSPI_Type * | base, |
| const qspi_config_t * | config ) |
Инициализация контроллера QSPI.
| base | Базовый адрес контроллера QSPI |
| config | Структура с настройками контроллера по умолчанию |
| nor_status_t QSPI_NorFlashInit | ( | nor_config_t * | config, |
| nor_handle_t * | handle ) |
Инициализация устройства флеш-памяти NOR.
Функция инициализирует контроллер QSPI и флеш-память NOR.
| config | Конфигурация флеш-памяти NOR |
| handle | Контекст драйвера флеш-памяти NOR |
| NOR_Status_Success | |
| NOR_Status_Fail | |
| NOR_Status_InvalidArgument |
|
inlinestatic |
Чтение 32-битного слова из Rx FIFO.
| base | Базовый адрес контроллера QSPI |
|
inlinestatic |
Чтение байта данных из Rx FIFO.
| base | Базовый адрес контроллера QSPI |
| qspi_dma_status_t QSPI_ReadDataDMA | ( | qspi_dma_handle_t * | handle, |
| void * | addr, | ||
| uint8_t | incr, | ||
| uint8_t | transfer_width, | ||
| uint32_t | size ) |
Чтение данных из QSPI RX.
| handle | Дескриптор DMA-QSPI передачи |
| addr | Адрес Приемника |
| incr | Инкремент адреса |
| transfer_width | Ширина одного слова |
| size | Общий размер данных (в байтах) |
| QSPI_DMA_Status_Success | |
| QSPI_DMA_Status_Fail | |
| QSPI_DMA_Status_InvalidArgument |
| void QSPI_SetBitSize | ( | QSPI_Type * | base, |
| qspi_bit_size_t | bit_size ) |
Установка количества передаваемых бит
| base | Базовый адрес контроллера QSPI |
| bit_size | Количество передаваемых бит |
| void QSPI_SetInhibitDin | ( | QSPI_Type * | base, |
| bool | inhibit_din ) |
Установка запрета записи в Tx FIFO.
| base | Базовый адрес контроллера QSPI |
| inhibit_din | Запрет (1) или нет запрета (0) на запись |
| void QSPI_SetInhibitDout | ( | QSPI_Type * | base, |
| bool | inhibit_dout ) |
Установка запрета чтения из Rx FIFO.
| base | Базовый адрес контроллера QSPI |
| inhibit_dout | Запрет (1) или нет запрета (0) на чтение |
| void QSPI_SetQMode | ( | QSPI_Type * | base, |
| qspi_qmode_t | spi_mode ) |
Установка режима SPI.
| base | Базовый адрес контроллера QSPI |
| spi_mode | Режим SPI |
|
inlinestatic |
Переключение ведомого устройства
| base | Базовый адрес контроллера QSPI |
| slave_select | Выбор ведомого устройства по битовой маске |
| void QSPI_TransferCreateHandleDMA | ( | QSPI_Type * | base, |
| qspi_dma_handle_t * | handle, | ||
| dma_handle_t * | tx_handle, | ||
| dma_handle_t * | rx_handle ) |
Инициализация контекста передачи QSPI-DMA.
| base | Базовый адрес QSPI |
| handle | Указатель на контекст |
| tx_handle | Указатель на контекст драйвера DMA для передачи данных |
| rx_handle | Указатель на контекст драйвера DMA для приема данных |
|
inlinestatic |
Передача 32-битного слова в Tx FIFO.
| base | Базовый адрес контроллера QSPI |
| data | 32-битное слово для передачи |
|
inlinestatic |
Передача байта данных в Tx FIFO.
| base | Базовый адрес контроллера QSPI |
| data | Байт данных для передачи |
| qspi_dma_status_t QSPI_WriteDataDMA | ( | qspi_dma_handle_t * | handle, |
| void * | addr, | ||
| uint8_t | incr, | ||
| uint8_t | transfer_width, | ||
| uint32_t | size ) |
Запись данных в QSPI TX.
| handle | Дескриптор DMA-QSPI передачи |
| addr | Адрес Источника |
| incr | Инкремент адреса |
| transfer_width | Ширина одного слова |
| size | Общий размер данных (в байтах) |
| QSPI_DMA_Status_Success | |
| QSPI_DMA_Status_Fail | |
| QSPI_DMA_Status_InvalidArgument |