Edit online

数据结构设计

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;
};