Framework Components Application Programming Interface (API)  fc-u06
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Macros | Typedefs
edmamgr.h File Reference

Detailed Description

EdmaMgr Definitions - Functional library for use with the EDMA3 DMA peripheral.

The intent of the EdmaMgr component is to provide a simple and intuitive interface for acquiring and using EDMA3 resources for asynchronous data transfers.

Once the framework provides the initial configuration to EdmaMgr_init(), malloc/free style APIs are used to obtain/release resources. The actual transfer has been abstracted to multiple APIs which can transfer data of various dimensions.

#include <stdint.h>
#include <string.h>
#include <ti/sdo/fc/ecpy/ecpy.h>
#include <ti/xdais/ires.h>
#include <ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h>
#include <ti/sdo/fc/edma3/edma3_config.h>
Include dependency graph for edmamgr.h:

Go to the source code of this file.

Functions

int32_t EdmaMgr_init (int32_t proc_id, void *edma3_config)
 Initialize EdmaMgr.
EdmaMgr_Handle EdmaMgr_alloc (int32_t max_linked_transfers)
 Allocate an EdmaMgr channel.
int32_t EdmaMgr_free (EdmaMgr_Handle h)
 Frees an EdmaMgr channel.
void EdmaMgr_wait (EdmaMgr_Handle h)
 Wait for transfers to complete.
int32_t EdmaMgr_copy1D1D (EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes)
 Perform a single 1D->1D transfer.
int32_t EdmaMgr_copy1D2D (EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
 Perform a 1D->2D transfer.
int32_t EdmaMgr_copy2D1D (EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
 Perform a 2D->1D transfer.
int32_t EdmaMgr_copy2D2D (EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t pitch)
 Perform a 2D->2D transfer of buffers with the same pitch.
int32_t EdmaMgr_copy2D2DSep (EdmaMgr_Handle h, void *restrict src, void *restrict dst, int32_t num_bytes, int32_t num_lines, int32_t src_pitch, int32_t dst_pitch)
 Perform a 2D->2D transfer of buffers with different pitches.
int32_t EdmaMgr_copy1D1DLinked (EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_transfers)
 Perform a group of linked 1D->1D transfers.
int32_t EdmaMgr_copy1D2DLinked (EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t pitch[], int32_t num_transfers)
 Perform a group of linked 1D->2D transfers.
int32_t EdmaMgr_copy2D1DLinked (EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t pitch[], int32_t num_transfers)
 Perform a group of linked 2D->1D transfers.
int32_t EdmaMgr_copy2D2DLinked (EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t pitch[], int32_t num_transfers)
 Perform a group of linked 2D->2D transfers.
int32_t EdmaMgr_copy2D2DSepLinked (EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_bytes[], int32_t num_lines[], int32_t src_pitch[], int32_t dst_pitch[], int32_t num_transfers)
 Perform a group of linked 2D->2D transfers with different pitches.
int32_t EdmaMgr_copyFast (EdmaMgr_Handle h, void *restrict src, void *restrict dst)
 Perform a fast copy. This API inherits the transfer configuration of a previous transfer and only modifies the src and dst addresses.
int32_t EdmaMgr_copyLinkedFast (EdmaMgr_Handle h, void *restrict src[], void *restrict dst[], int32_t num_transfers)
 Perform a linked fast copy. This API inherits the transfer configuration of a previous transfer and only modifies the src and dst addresses.

Macros

#define EdmaMgr_SUCCESS   0
#define EdmaMgr_ERROR_INVARG   -1
#define EdmaMgr_ERROR_INVCFG   -2
#define EdmaMgr_ERROR_RMANINIT   -3
#define EdmaMgr_ERROR_INVHANDLE   -4
#define EdmaMgr_ERROR_FREE   -5

Typedefs

typedef void * EdmaMgr_Handle
 Handle to an EdmaMgr instance.
Copyright 2014, Texas Instruments Incorporated