数据结构设计
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; };