数据结构设计
HAL 层主要数据结构。
struct qspi_master_config {
uint32_t idx;
uint32_t clk_in_hz;
uint32_t clk_id;
bool bit_mode;
bool wire3_en;
bool lsb_en;
bool cs_auto;
uint8_t cs_polarity;
uint8_t cpol;
uint8_t cpha;
};struct qspi_master_dma_config {
uint32_t port_id;
uint32_t tx_bus_width;
uint32_t tx_max_burst;
uint32_t rx_bus_width;
uint32_t rx_max_burst;
};struct qspi_transfer {
uint8_t *tx_data;
uint8_t *rx_data;
uint32_t data_len;
};struct qspi_master_state {
uint32_t idx;
qspi_master_async_cb cb;
void *cb_priv;
uint32_t status;
uint32_t clk_id;
uint32_t bus_hz;
uint32_t bus_width;
struct qspi_master_dma_config dma_cfg;
void *dma_tx;
void *dma_rx;
uint8_t *async_tx; /* Used in Async Non-DMA mode */
uint8_t *async_rx; /* Used in Async Non-DMA mode */
uint32_t async_tx_remain; /* Used in Async Non-DMA mode */
uint32_t async_rx_remain; /* Used in Async Non-DMA mode */
uint32_t work_mode;
uint32_t done_mask;
};