Jump to main content

##

# 2.106.20 SDMMCx_DmaSetup Function

## C

    /* x = SDMMC instance number */

    void SDMMCx_DmaSetup (
    uint8_t* buffer,
    uint32_t numBytes,
    SDMMC_DATA_TRANSFER_DIR direction
    )

## Summary

Sets up the DMA for data tranfers.

## Description

The client of the SDMMC PLIB must set up the DMA before initiating a data transfer.

## Precondition

SDMMCx_Initialize() must have been called first for the associated instance.

## Parameters

Param | Description
--- | ---
buffer | Pointer to the read or write buffer (depending on the direction)
numBytes | Number of bytes to read or write
direction | Enumeration of SDMMC_DATA_TRANSFER_DIR type indicating the direction of transfer

## Returns

None.

## Example

    uint8_t readBuffer[512];
    SDMMC_DataTransferFlags transferFlags;

    transferFlags.isDataPresent = true;
    transferFlags.transferDir = SDMMC_DATA_TRANSFER_DIR_READ;
    transferFlags.transferType = SDMMC_DATA_TRANSFER_TYPE_SINGLE;

    // Set up the DMA to read 512 btyes of data
    SDMMC1_DmaSetup(readBuffer, 512, SDMMC_DATA_TRANSFER_DIR_READ);

    // Send command to read one block of data from SD card starting at block address 100
    SDMMC1_CommandSend(17, 100, SDMMC_CMD_RESP_R1, transferFlags);

## Remarks

None.