mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-05-24 10:38:01 +08:00
158 lines
4.2 KiB
C
158 lines
4.2 KiB
C
// Copyright 2018-2025 Espressif Systems (Shanghai) PTE LTD
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include "esp_err.h"
|
|
#include "spi_ram.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void *spi_ram_fifo_handle_t;
|
|
|
|
/**
|
|
* @brief spi ram fifo initialization parameter structure type definition
|
|
*/
|
|
typedef struct {
|
|
spi_ram_num_t ram_num;
|
|
uint32_t start_addr;
|
|
uint32_t total_size;
|
|
} spi_ram_fifo_config_t;
|
|
|
|
/**
|
|
* @brief spi ram fifo write function
|
|
*
|
|
* @note spi ram fifo may block waiting for free space in fifo
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param data Pointer to the write data buffer
|
|
* @param len Length of write data, range: len > 0
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_write(spi_ram_fifo_handle_t handle, uint8_t *data, int len);
|
|
|
|
/**
|
|
* @brief spi ram fifo read function
|
|
*
|
|
* @note spi ram fifo may block waiting for data in fifo
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param data Pointer to the read data buffer
|
|
* @param len Length of read data, range: len > 0
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_read(spi_ram_fifo_handle_t handle, uint8_t *data, int len);
|
|
|
|
/**
|
|
* @brief Get spi ram fifo filled length
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param len Pointer to the fifo filled length
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_get_fill(spi_ram_fifo_handle_t handle, uint32_t *len);
|
|
|
|
/**
|
|
* @brief Get spi ram fifo free length
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param len Pointer to the fifo free length
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_get_free(spi_ram_fifo_handle_t handle, uint32_t *len);
|
|
|
|
/**
|
|
* @brief Get spi ram fifo total length
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param len Pointer to the fifo total length
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_get_total(spi_ram_fifo_handle_t handle, uint32_t *len);
|
|
|
|
/**
|
|
* @brief Get spi ram fifo overflow number of times
|
|
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param num Pointer to the fifo overflow number of times
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_get_overflow(spi_ram_fifo_handle_t handle, uint32_t *num);
|
|
|
|
/**
|
|
* @brief Get spi ram fifo underrun number of times
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
* @param num Pointer to the fifo underrun number of times
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_get_underrun(spi_ram_fifo_handle_t handle, uint32_t *num);
|
|
|
|
/**
|
|
* @brief Delete the spi ram fifo
|
|
*
|
|
* @param handle spi ram fifo handle
|
|
*
|
|
* @return
|
|
* - ESP_OK Success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
* - ESP_FAIL spi ram fifo not created yet
|
|
*/
|
|
esp_err_t spi_ram_fifo_delete(spi_ram_fifo_handle_t handle);
|
|
|
|
/**
|
|
* @brief Create the spi ram fifo
|
|
*
|
|
* @param config Pointer to the configuration parameter
|
|
*
|
|
* @return
|
|
* - spi ram fifo handle
|
|
*/
|
|
spi_ram_fifo_handle_t spi_ram_fifo_create(spi_ram_fifo_config_t *config);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |