Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00060 #ifndef ti_sdo_fc_ecpy_ECPY_
00061 #define ti_sdo_fc_ecpy_ECPY_
00062
00063
00064 #ifdef __cplusplus
00065 extern "C" {
00066 #endif
00067
00070
00071 #define ti_sdo_fc_ires_NOPROTOCOLREV
00072 #include <ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h>
00073
00074 #define ECPY_GTNAME "ti.sdo.fc.ecpy"
00075
00084 #define ECPY_MODNAME "ti.sdo.fc.ecpy"
00085
00086
00092 typedef enum ECPY_ParamField16b {
00093
00094 ECPY_PARAMFIELD_ELEMENTSIZE = 8,
00095 ECPY_PARAMFIELD_NUMELEMENTS = 10 ,
00096 ECPY_PARAMFIELD_ELEMENTINDEX_SRC = 16,
00097 ECPY_PARAMFIELD_ELEMENTINDEX_DST = 18,
00098 ECPY_PARAMFIELD_FRAMEINDEX_SRC = 24,
00099 ECPY_PARAMFIELD_FRAMEINDEX_DST = 26,
00100 ECPY_PARAMFIELD_NUMFRAMES = 28
00101
00102 } ECPY_ParamField16b;
00103
00109 typedef enum ECPY_ParamField32b {
00110
00111 ECPY_PARAMFIELD_SRCADDR = 4,
00112 ECPY_PARAMFIELD_DSTADDR = 12,
00113 ECPY_PARAMFIELD_ELEMENTINDEXES = 16,
00114 ECPY_PARAMFIELD_FRAMEINDEXES = 24
00115
00116 } ECPY_ParamField32b;
00117
00128 typedef enum ECPY_TransferType {
00129
00135 ECPY_1D1D,
00136
00150 ECPY_1D2D,
00151
00163 ECPY_2D1D,
00164
00176 ECPY_2D2D
00177 } ECPY_TransferType;
00178
00183 typedef struct ECPY_Obj {
00184
00185 IRES_EDMA3CHAN2_Obj *iresHandle;
00186
00187 unsigned int iprRegisterAddr;
00188 unsigned int iprBitMask;
00189 unsigned int esrRegisterAddr;
00190 unsigned int esrBitMask;
00191 short transferMode;
00192 short transferPending;
00193 short finalTransferNo;
00194
00195
00196 IRES_EDMA3CHAN_PaRamStruct *firstPARAMShadow;
00197
00198 } ECPY_Obj;
00199
00203 typedef struct ECPY_Obj *ECPY_Handle;
00204
00205
00210 typedef struct ECPY_Params {
00211
00213 ECPY_TransferType transferType;
00214
00216 Void * srcAddr;
00217
00219 Void * dstAddr;
00220
00222 unsigned short elementSize;
00223
00225 unsigned short numElements;
00226
00228 unsigned short numFrames ;
00229
00234 short srcElementIndex;
00235
00240 short dstElementIndex;
00241
00247 short srcFrameIndex;
00248
00254 short dstFrameIndex;
00255
00256 } ECPY_Params;
00257
00258
00273 Void ECPY_configure(ECPY_Handle handle, ECPY_Params * restrict params,
00274 short transferNo);
00275 Void ECPY_directConfigure(ECPY_Handle handle, ECPY_Params * restrict params,
00276 short transferNo);
00277
00278
00310 #if defined(ECPY_CONFIGURE16) || defined(ECPY_INLINE_ALL)
00311 #include <ti/sdo/fc/ecpy/ecpy_configure16.h>
00312 #else
00313 Void ECPY_configure16(ECPY_Handle handle, ECPY_ParamField16b fieldId,
00314 unsigned short value, short transferNo);
00315 Void ECPY_directConfigure16(ECPY_Handle handle, ECPY_ParamField16b fieldId,
00316 unsigned short value, short transferNo);
00317 #endif
00318
00353 #if defined(ECPY_CONFIGURE32_INLINE) || defined(ECPY_INLINE_ALL)
00354 #include <ti/sdo/fc/ecpy/ecpy_configure32.h>
00355 #else
00356 Void ECPY_configure32(ECPY_Handle handle, ECPY_ParamField32b fieldId,
00357 unsigned int value, short transferNo);
00358 Void ECPY_directConfigure32(ECPY_Handle handle, ECPY_ParamField32b fieldId,
00359 unsigned int value, short transferNo);
00360 #endif
00361
00392 #if defined(ECPY_SETFINAL_INLINE) || defined(ECPY_INLINE_ALL)
00393 #include <ti/sdo/fc/ecpy/ecpy_setfinal.h>
00394 #else
00395 Void ECPY_setFinal(ECPY_Handle handle, short transferNo);
00396 Void ECPY_directSetFinal(ECPY_Handle handle, short transferNo);
00397 #endif
00398
00410 Void ECPY_setDestinationMemoryMode(ECPY_Handle handle, short mode);
00411
00434 #if defined(ECPY_START_INLINE) || defined(ECPY_INLINE_ALL)
00435 #include <ti/sdo/fc/ecpy/ecpy_start.h>
00436 #else
00437 Void ECPY_start(ECPY_Handle handle);
00438 Void ECPY_directStartEdma(ECPY_Handle handle);
00439 Void ECPY_directStartQdma(ECPY_Handle handle);
00440 #endif
00441
00442
00469 #if defined(ECPY_WAIT_INLINE) || defined(ECPY_INLINE_ALL)
00470 #include <ti/sdo/fc/ecpy/ecpy_wait.h>
00471 #else
00472 Void ECPY_wait(ECPY_Handle handle);
00473 #endif
00474
00505 #if defined(ECPY_DIRECTWAIT_INLINE) || defined(ECPY_INLINE_ALL)
00506 #include <ti/sdo/fc/ecpy/ecpy_directwait.h>
00507 #else
00508 Void ECPY_directWait(ECPY_Handle handle);
00509 #endif
00510
00526 Void ECPY_activate(ECPY_Handle handle);
00527
00537 ECPY_Handle ECPY_createHandle(IRES_EDMA3CHAN2_Handle handle, IALG_Handle alg);
00538
00547 Void ECPY_deleteHandle(ECPY_Handle handle);
00548
00563 Void ECPY_deactivate(ECPY_Handle handle);
00564
00565
00569 Void ECPY_init(Void);
00570
00574 Void ECPY_exit(Void);
00575
00579 typedef Bool (ECPY_PersistentAllocFxn)(IALG_MemRec *memTab, Int numRecs);
00580
00584 typedef Void (ECPY_PersistentFreeFxn)(IALG_MemRec *memTab, Int numRecs);
00585
00586
00597 typedef struct ECPY_CfgParams {
00598
00602 ECPY_PersistentAllocFxn * allocFxn;
00603
00607 ECPY_PersistentFreeFxn * freeFxn;
00608
00609 } ECPY_CfgParams;
00610
00614 extern __FAR__ ECPY_CfgParams ECPY_CFG_PARAMS;
00615
00618 #ifdef __cplusplus
00619 }
00620 #endif
00621
00622
00623 #endif
00624
00625
00626
00627
00628
00629