The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*
AnnaBridge 171:3a7713b1edbc 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
AnnaBridge 171:3a7713b1edbc 3 * All rights reserved.
AnnaBridge 171:3a7713b1edbc 4 *
AnnaBridge 171:3a7713b1edbc 5 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 6 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 7 *
AnnaBridge 171:3a7713b1edbc 8 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 171:3a7713b1edbc 9 * of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 171:3a7713b1edbc 12 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 171:3a7713b1edbc 13 * other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 14 *
AnnaBridge 171:3a7713b1edbc 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
AnnaBridge 171:3a7713b1edbc 16 * contributors may be used to endorse or promote products derived from this
AnnaBridge 171:3a7713b1edbc 17 * software without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 18 *
AnnaBridge 171:3a7713b1edbc 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 171:3a7713b1edbc 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 171:3a7713b1edbc 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 171:3a7713b1edbc 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 171:3a7713b1edbc 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 171:3a7713b1edbc 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 171:3a7713b1edbc 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 171:3a7713b1edbc 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 171:3a7713b1edbc 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 29 */
AnnaBridge 171:3a7713b1edbc 30 #ifndef _FSL_DSPI_EDMA_H_
AnnaBridge 171:3a7713b1edbc 31 #define _FSL_DSPI_EDMA_H_
AnnaBridge 171:3a7713b1edbc 32
AnnaBridge 171:3a7713b1edbc 33 #include "fsl_dspi.h"
AnnaBridge 171:3a7713b1edbc 34 #include "fsl_edma.h"
AnnaBridge 171:3a7713b1edbc 35 /*!
AnnaBridge 171:3a7713b1edbc 36 * @addtogroup dspi_edma_driver
AnnaBridge 171:3a7713b1edbc 37 * @{
AnnaBridge 171:3a7713b1edbc 38 */
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 /*! @file */
AnnaBridge 171:3a7713b1edbc 41
AnnaBridge 171:3a7713b1edbc 42 /***********************************************************************************************************************
AnnaBridge 171:3a7713b1edbc 43 * Definitions
AnnaBridge 171:3a7713b1edbc 44 **********************************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 45
AnnaBridge 171:3a7713b1edbc 46 /*!
AnnaBridge 171:3a7713b1edbc 47 * @brief Forward declaration of the DSPI eDMA master handle typedefs.
AnnaBridge 171:3a7713b1edbc 48 */
AnnaBridge 171:3a7713b1edbc 49 typedef struct _dspi_master_edma_handle dspi_master_edma_handle_t;
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 /*!
AnnaBridge 171:3a7713b1edbc 52 * @brief Forward declaration of the DSPI eDMA slave handle typedefs.
AnnaBridge 171:3a7713b1edbc 53 */
AnnaBridge 171:3a7713b1edbc 54 typedef struct _dspi_slave_edma_handle dspi_slave_edma_handle_t;
AnnaBridge 171:3a7713b1edbc 55
AnnaBridge 171:3a7713b1edbc 56 /*!
AnnaBridge 171:3a7713b1edbc 57 * @brief Completion callback function pointer type.
AnnaBridge 171:3a7713b1edbc 58 *
AnnaBridge 171:3a7713b1edbc 59 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 60 * @param handle Pointer to the handle for the DSPI master.
AnnaBridge 171:3a7713b1edbc 61 * @param status Success or error code describing whether the transfer completed.
AnnaBridge 171:3a7713b1edbc 62 * @param userData Arbitrary pointer-dataSized value passed from the application.
AnnaBridge 171:3a7713b1edbc 63 */
AnnaBridge 171:3a7713b1edbc 64 typedef void (*dspi_master_edma_transfer_callback_t)(SPI_Type *base,
AnnaBridge 171:3a7713b1edbc 65 dspi_master_edma_handle_t *handle,
AnnaBridge 171:3a7713b1edbc 66 status_t status,
AnnaBridge 171:3a7713b1edbc 67 void *userData);
AnnaBridge 171:3a7713b1edbc 68 /*!
AnnaBridge 171:3a7713b1edbc 69 * @brief Completion callback function pointer type.
AnnaBridge 171:3a7713b1edbc 70 *
AnnaBridge 171:3a7713b1edbc 71 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 72 * @param handle Pointer to the handle for the DSPI slave.
AnnaBridge 171:3a7713b1edbc 73 * @param status Success or error code describing whether the transfer completed.
AnnaBridge 171:3a7713b1edbc 74 * @param userData Arbitrary pointer-dataSized value passed from the application.
AnnaBridge 171:3a7713b1edbc 75 */
AnnaBridge 171:3a7713b1edbc 76 typedef void (*dspi_slave_edma_transfer_callback_t)(SPI_Type *base,
AnnaBridge 171:3a7713b1edbc 77 dspi_slave_edma_handle_t *handle,
AnnaBridge 171:3a7713b1edbc 78 status_t status,
AnnaBridge 171:3a7713b1edbc 79 void *userData);
AnnaBridge 171:3a7713b1edbc 80
AnnaBridge 171:3a7713b1edbc 81 /*! @brief DSPI master eDMA transfer handle structure used for transactional API. */
AnnaBridge 171:3a7713b1edbc 82 struct _dspi_master_edma_handle
AnnaBridge 171:3a7713b1edbc 83 {
AnnaBridge 171:3a7713b1edbc 84 uint32_t bitsPerFrame; /*!< Desired number of bits per frame. */
AnnaBridge 171:3a7713b1edbc 85 volatile uint32_t command; /*!< Desired data command. */
AnnaBridge 171:3a7713b1edbc 86 volatile uint32_t lastCommand; /*!< Desired last data command. */
AnnaBridge 171:3a7713b1edbc 87
AnnaBridge 171:3a7713b1edbc 88 uint8_t fifoSize; /*!< FIFO dataSize. */
AnnaBridge 171:3a7713b1edbc 89
AnnaBridge 171:3a7713b1edbc 90 volatile bool isPcsActiveAfterTransfer; /*!< Is PCS signal keep active after the last frame transfer.*/
AnnaBridge 171:3a7713b1edbc 91 volatile bool isThereExtraByte; /*!< Is there extra byte.*/
AnnaBridge 171:3a7713b1edbc 92
AnnaBridge 171:3a7713b1edbc 93 uint8_t *volatile txData; /*!< Send buffer. */
AnnaBridge 171:3a7713b1edbc 94 uint8_t *volatile rxData; /*!< Receive buffer. */
AnnaBridge 171:3a7713b1edbc 95 volatile size_t remainingSendByteCount; /*!< Number of bytes remaining to send.*/
AnnaBridge 171:3a7713b1edbc 96 volatile size_t remainingReceiveByteCount; /*!< Number of bytes remaining to receive.*/
AnnaBridge 171:3a7713b1edbc 97 size_t totalByteCount; /*!< Number of transfer bytes*/
AnnaBridge 171:3a7713b1edbc 98
AnnaBridge 171:3a7713b1edbc 99 uint32_t rxBuffIfNull; /*!< Used if there is not rxData for DMA purpose.*/
AnnaBridge 171:3a7713b1edbc 100 uint32_t txBuffIfNull; /*!< Used if there is not txData for DMA purpose.*/
AnnaBridge 171:3a7713b1edbc 101
AnnaBridge 171:3a7713b1edbc 102 volatile uint8_t state; /*!< DSPI transfer state , _dspi_transfer_state.*/
AnnaBridge 171:3a7713b1edbc 103
AnnaBridge 171:3a7713b1edbc 104 dspi_master_edma_transfer_callback_t callback; /*!< Completion callback. */
AnnaBridge 171:3a7713b1edbc 105 void *userData; /*!< Callback user data. */
AnnaBridge 171:3a7713b1edbc 106
AnnaBridge 171:3a7713b1edbc 107 edma_handle_t *edmaRxRegToRxDataHandle; /*!<edma_handle_t handle point used for RxReg to RxData buff*/
AnnaBridge 171:3a7713b1edbc 108 edma_handle_t *edmaTxDataToIntermediaryHandle; /*!<edma_handle_t handle point used for TxData to Intermediary*/
AnnaBridge 171:3a7713b1edbc 109 edma_handle_t *edmaIntermediaryToTxRegHandle; /*!<edma_handle_t handle point used for Intermediary to TxReg*/
AnnaBridge 171:3a7713b1edbc 110
AnnaBridge 171:3a7713b1edbc 111 edma_tcd_t dspiSoftwareTCD[2]; /*!<SoftwareTCD , internal used*/
AnnaBridge 171:3a7713b1edbc 112 };
AnnaBridge 171:3a7713b1edbc 113
AnnaBridge 171:3a7713b1edbc 114 /*! @brief DSPI slave eDMA transfer handle structure used for transactional API.*/
AnnaBridge 171:3a7713b1edbc 115 struct _dspi_slave_edma_handle
AnnaBridge 171:3a7713b1edbc 116 {
AnnaBridge 171:3a7713b1edbc 117 uint32_t bitsPerFrame; /*!< Desired number of bits per frame. */
AnnaBridge 171:3a7713b1edbc 118 volatile bool isThereExtraByte; /*!< Is there extra byte.*/
AnnaBridge 171:3a7713b1edbc 119
AnnaBridge 171:3a7713b1edbc 120 uint8_t *volatile txData; /*!< Send buffer. */
AnnaBridge 171:3a7713b1edbc 121 uint8_t *volatile rxData; /*!< Receive buffer. */
AnnaBridge 171:3a7713b1edbc 122 volatile size_t remainingSendByteCount; /*!< Number of bytes remaining to send.*/
AnnaBridge 171:3a7713b1edbc 123 volatile size_t remainingReceiveByteCount; /*!< Number of bytes remaining to receive.*/
AnnaBridge 171:3a7713b1edbc 124 size_t totalByteCount; /*!< Number of transfer bytes*/
AnnaBridge 171:3a7713b1edbc 125
AnnaBridge 171:3a7713b1edbc 126 uint32_t rxBuffIfNull; /*!< Used if there is not rxData for DMA purpose.*/
AnnaBridge 171:3a7713b1edbc 127 uint32_t txBuffIfNull; /*!< Used if there is not txData for DMA purpose.*/
AnnaBridge 171:3a7713b1edbc 128 uint32_t txLastData; /*!< Used if there is an extra byte when 16bits per frame for DMA purpose.*/
AnnaBridge 171:3a7713b1edbc 129
AnnaBridge 171:3a7713b1edbc 130 volatile uint8_t state; /*!< DSPI transfer state.*/
AnnaBridge 171:3a7713b1edbc 131
AnnaBridge 171:3a7713b1edbc 132 uint32_t errorCount; /*!< Error count for slave transfer.*/
AnnaBridge 171:3a7713b1edbc 133
AnnaBridge 171:3a7713b1edbc 134 dspi_slave_edma_transfer_callback_t callback; /*!< Completion callback. */
AnnaBridge 171:3a7713b1edbc 135 void *userData; /*!< Callback user data. */
AnnaBridge 171:3a7713b1edbc 136
AnnaBridge 171:3a7713b1edbc 137 edma_handle_t *edmaRxRegToRxDataHandle; /*!<edma_handle_t handle point used for RxReg to RxData buff*/
AnnaBridge 171:3a7713b1edbc 138 edma_handle_t *edmaTxDataToTxRegHandle; /*!<edma_handle_t handle point used for TxData to TxReg*/
AnnaBridge 171:3a7713b1edbc 139
AnnaBridge 171:3a7713b1edbc 140 edma_tcd_t dspiSoftwareTCD[2]; /*!<SoftwareTCD , internal used*/
AnnaBridge 171:3a7713b1edbc 141 };
AnnaBridge 171:3a7713b1edbc 142
AnnaBridge 171:3a7713b1edbc 143 /***********************************************************************************************************************
AnnaBridge 171:3a7713b1edbc 144 * API
AnnaBridge 171:3a7713b1edbc 145 **********************************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 146 #if defined(__cplusplus)
AnnaBridge 171:3a7713b1edbc 147 extern "C" {
AnnaBridge 171:3a7713b1edbc 148 #endif /*_cplusplus*/
AnnaBridge 171:3a7713b1edbc 149
AnnaBridge 171:3a7713b1edbc 150 /*Transactional APIs*/
AnnaBridge 171:3a7713b1edbc 151
AnnaBridge 171:3a7713b1edbc 152 /*!
AnnaBridge 171:3a7713b1edbc 153 * @brief Initializes the DSPI master eDMA handle.
AnnaBridge 171:3a7713b1edbc 154 *
AnnaBridge 171:3a7713b1edbc 155 * This function initializes the DSPI eDMA handle which can be used for other DSPI transactional APIs. Usually, for a
AnnaBridge 171:3a7713b1edbc 156 * specified DSPI instance, user need only call this API once to get the initialized handle.
AnnaBridge 171:3a7713b1edbc 157 *
AnnaBridge 171:3a7713b1edbc 158 * Note that DSPI eDMA has separated (RX and TX as two sources) or shared (RX and TX are the same source) DMA request source.
AnnaBridge 171:3a7713b1edbc 159 * (1)For the separated DMA request source, enable and set the RX DMAMUX source for edmaRxRegToRxDataHandle and
AnnaBridge 171:3a7713b1edbc 160 * TX DMAMUX source for edmaIntermediaryToTxRegHandle.
AnnaBridge 171:3a7713b1edbc 161 * (2)For the shared DMA request source, enable and set the RX/RX DMAMUX source for the edmaRxRegToRxDataHandle.
AnnaBridge 171:3a7713b1edbc 162 *
AnnaBridge 171:3a7713b1edbc 163 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 164 * @param handle DSPI handle pointer to dspi_master_edma_handle_t.
AnnaBridge 171:3a7713b1edbc 165 * @param callback DSPI callback.
AnnaBridge 171:3a7713b1edbc 166 * @param userData callback function parameter.
AnnaBridge 171:3a7713b1edbc 167 * @param edmaRxRegToRxDataHandle edmaRxRegToRxDataHandle pointer to edma_handle_t.
AnnaBridge 171:3a7713b1edbc 168 * @param edmaTxDataToIntermediaryHandle edmaTxDataToIntermediaryHandle pointer to edma_handle_t.
AnnaBridge 171:3a7713b1edbc 169 * @param edmaIntermediaryToTxRegHandle edmaIntermediaryToTxRegHandle pointer to edma_handle_t.
AnnaBridge 171:3a7713b1edbc 170 */
AnnaBridge 171:3a7713b1edbc 171 void DSPI_MasterTransferCreateHandleEDMA(SPI_Type *base,
AnnaBridge 171:3a7713b1edbc 172 dspi_master_edma_handle_t *handle,
AnnaBridge 171:3a7713b1edbc 173 dspi_master_edma_transfer_callback_t callback,
AnnaBridge 171:3a7713b1edbc 174 void *userData,
AnnaBridge 171:3a7713b1edbc 175 edma_handle_t *edmaRxRegToRxDataHandle,
AnnaBridge 171:3a7713b1edbc 176 edma_handle_t *edmaTxDataToIntermediaryHandle,
AnnaBridge 171:3a7713b1edbc 177 edma_handle_t *edmaIntermediaryToTxRegHandle);
AnnaBridge 171:3a7713b1edbc 178
AnnaBridge 171:3a7713b1edbc 179 /*!
AnnaBridge 171:3a7713b1edbc 180 * @brief DSPI master transfer data using eDMA.
AnnaBridge 171:3a7713b1edbc 181 *
AnnaBridge 171:3a7713b1edbc 182 * This function transfer data using eDMA. This is non-blocking function, which returns right away. When all data
AnnaBridge 171:3a7713b1edbc 183 * have been transfer, the callback function is called.
AnnaBridge 171:3a7713b1edbc 184 *
AnnaBridge 171:3a7713b1edbc 185 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 186 * @param handle pointer to dspi_master_edma_handle_t structure which stores the transfer state.
AnnaBridge 171:3a7713b1edbc 187 * @param transfer pointer to dspi_transfer_t structure.
AnnaBridge 171:3a7713b1edbc 188 * @return status of status_t.
AnnaBridge 171:3a7713b1edbc 189 */
AnnaBridge 171:3a7713b1edbc 190 status_t DSPI_MasterTransferEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle, dspi_transfer_t *transfer);
AnnaBridge 171:3a7713b1edbc 191
AnnaBridge 171:3a7713b1edbc 192 /*!
AnnaBridge 171:3a7713b1edbc 193 * @brief DSPI master aborts a transfer which using eDMA.
AnnaBridge 171:3a7713b1edbc 194 *
AnnaBridge 171:3a7713b1edbc 195 * This function aborts a transfer which using eDMA.
AnnaBridge 171:3a7713b1edbc 196 *
AnnaBridge 171:3a7713b1edbc 197 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 198 * @param handle pointer to dspi_master_edma_handle_t structure which stores the transfer state.
AnnaBridge 171:3a7713b1edbc 199 */
AnnaBridge 171:3a7713b1edbc 200 void DSPI_MasterTransferAbortEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle);
AnnaBridge 171:3a7713b1edbc 201
AnnaBridge 171:3a7713b1edbc 202 /*!
AnnaBridge 171:3a7713b1edbc 203 * @brief Gets the master eDMA transfer count.
AnnaBridge 171:3a7713b1edbc 204 *
AnnaBridge 171:3a7713b1edbc 205 * This function get the master eDMA transfer count.
AnnaBridge 171:3a7713b1edbc 206 *
AnnaBridge 171:3a7713b1edbc 207 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 208 * @param handle pointer to dspi_master_edma_handle_t structure which stores the transfer state.
AnnaBridge 171:3a7713b1edbc 209 * @param count Number of bytes transferred so far by the non-blocking transaction.
AnnaBridge 171:3a7713b1edbc 210 * @return status of status_t.
AnnaBridge 171:3a7713b1edbc 211 */
AnnaBridge 171:3a7713b1edbc 212 status_t DSPI_MasterTransferGetCountEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle, size_t *count);
AnnaBridge 171:3a7713b1edbc 213
AnnaBridge 171:3a7713b1edbc 214 /*!
AnnaBridge 171:3a7713b1edbc 215 * @brief Initializes the DSPI slave eDMA handle.
AnnaBridge 171:3a7713b1edbc 216 *
AnnaBridge 171:3a7713b1edbc 217 * This function initializes the DSPI eDMA handle which can be used for other DSPI transactional APIs. Usually, for a
AnnaBridge 171:3a7713b1edbc 218 * specified DSPI instance, call this API once to get the initialized handle.
AnnaBridge 171:3a7713b1edbc 219 *
AnnaBridge 171:3a7713b1edbc 220 * Note that DSPI eDMA has separated (RN and TX in 2 sources) or shared (RX and TX are the same source) DMA request source.
AnnaBridge 171:3a7713b1edbc 221 * (1)For the separated DMA request source, enable and set the RX DMAMUX source for edmaRxRegToRxDataHandle and
AnnaBridge 171:3a7713b1edbc 222 * TX DMAMUX source for edmaTxDataToTxRegHandle.
AnnaBridge 171:3a7713b1edbc 223 * (2)For the shared DMA request source, enable and set the RX/RX DMAMUX source for the edmaRxRegToRxDataHandle.
AnnaBridge 171:3a7713b1edbc 224 *
AnnaBridge 171:3a7713b1edbc 225 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 226 * @param handle DSPI handle pointer to dspi_slave_edma_handle_t.
AnnaBridge 171:3a7713b1edbc 227 * @param callback DSPI callback.
AnnaBridge 171:3a7713b1edbc 228 * @param userData callback function parameter.
AnnaBridge 171:3a7713b1edbc 229 * @param edmaRxRegToRxDataHandle edmaRxRegToRxDataHandle pointer to edma_handle_t.
AnnaBridge 171:3a7713b1edbc 230 * @param edmaTxDataToTxRegHandle edmaTxDataToTxRegHandle pointer to edma_handle_t.
AnnaBridge 171:3a7713b1edbc 231 */
AnnaBridge 171:3a7713b1edbc 232 void DSPI_SlaveTransferCreateHandleEDMA(SPI_Type *base,
AnnaBridge 171:3a7713b1edbc 233 dspi_slave_edma_handle_t *handle,
AnnaBridge 171:3a7713b1edbc 234 dspi_slave_edma_transfer_callback_t callback,
AnnaBridge 171:3a7713b1edbc 235 void *userData,
AnnaBridge 171:3a7713b1edbc 236 edma_handle_t *edmaRxRegToRxDataHandle,
AnnaBridge 171:3a7713b1edbc 237 edma_handle_t *edmaTxDataToTxRegHandle);
AnnaBridge 171:3a7713b1edbc 238
AnnaBridge 171:3a7713b1edbc 239 /*!
AnnaBridge 171:3a7713b1edbc 240 * @brief DSPI slave transfer data using eDMA.
AnnaBridge 171:3a7713b1edbc 241 *
AnnaBridge 171:3a7713b1edbc 242 * This function transfer data using eDMA. This is non-blocking function, which returns right away. When all data
AnnaBridge 171:3a7713b1edbc 243 * have been transfer, the callback function is called.
AnnaBridge 171:3a7713b1edbc 244 * Note that slave EDMA transfer cannot support the situation that transfer_size is 1 when the bitsPerFrame is greater
AnnaBridge 171:3a7713b1edbc 245 * than 8 .
AnnaBridge 171:3a7713b1edbc 246
AnnaBridge 171:3a7713b1edbc 247 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 248 * @param handle pointer to dspi_slave_edma_handle_t structure which stores the transfer state.
AnnaBridge 171:3a7713b1edbc 249 * @param transfer pointer to dspi_transfer_t structure.
AnnaBridge 171:3a7713b1edbc 250 * @return status of status_t.
AnnaBridge 171:3a7713b1edbc 251 */
AnnaBridge 171:3a7713b1edbc 252 status_t DSPI_SlaveTransferEDMA(SPI_Type *base, dspi_slave_edma_handle_t *handle, dspi_transfer_t *transfer);
AnnaBridge 171:3a7713b1edbc 253
AnnaBridge 171:3a7713b1edbc 254 /*!
AnnaBridge 171:3a7713b1edbc 255 * @brief DSPI slave aborts a transfer which using eDMA.
AnnaBridge 171:3a7713b1edbc 256 *
AnnaBridge 171:3a7713b1edbc 257 * This function aborts a transfer which using eDMA.
AnnaBridge 171:3a7713b1edbc 258 *
AnnaBridge 171:3a7713b1edbc 259 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 260 * @param handle pointer to dspi_slave_edma_handle_t structure which stores the transfer state.
AnnaBridge 171:3a7713b1edbc 261 */
AnnaBridge 171:3a7713b1edbc 262 void DSPI_SlaveTransferAbortEDMA(SPI_Type *base, dspi_slave_edma_handle_t *handle);
AnnaBridge 171:3a7713b1edbc 263
AnnaBridge 171:3a7713b1edbc 264 /*!
AnnaBridge 171:3a7713b1edbc 265 * @brief Gets the slave eDMA transfer count.
AnnaBridge 171:3a7713b1edbc 266 *
AnnaBridge 171:3a7713b1edbc 267 * This function gets the slave eDMA transfer count.
AnnaBridge 171:3a7713b1edbc 268 *
AnnaBridge 171:3a7713b1edbc 269 * @param base DSPI peripheral base address.
AnnaBridge 171:3a7713b1edbc 270 * @param handle pointer to dspi_slave_edma_handle_t structure which stores the transfer state.
AnnaBridge 171:3a7713b1edbc 271 * @param count Number of bytes transferred so far by the non-blocking transaction.
AnnaBridge 171:3a7713b1edbc 272 * @return status of status_t.
AnnaBridge 171:3a7713b1edbc 273 */
AnnaBridge 171:3a7713b1edbc 274 status_t DSPI_SlaveTransferGetCountEDMA(SPI_Type *base, dspi_slave_edma_handle_t *handle, size_t *count);
AnnaBridge 171:3a7713b1edbc 275
AnnaBridge 171:3a7713b1edbc 276 #if defined(__cplusplus)
AnnaBridge 171:3a7713b1edbc 277 }
AnnaBridge 171:3a7713b1edbc 278 #endif /*_cplusplus*/
AnnaBridge 171:3a7713b1edbc 279 /*!
AnnaBridge 171:3a7713b1edbc 280 *@}
AnnaBridge 171:3a7713b1edbc 281 */
AnnaBridge 171:3a7713b1edbc 282
AnnaBridge 171:3a7713b1edbc 283 #endif /*_FSL_DSPI_EDMA_H_*/