Functions | |
Void | ACPY3_configure (IDMA3_Handle handle, ACPY3_Params *params, short transferNo) |
Functions called by the framework for allocating and initializing the channel state. | |
Void | ACPY3_fastConfigure16b (IDMA3_Handle handle, ACPY3_ParamField16b fieldId, unsigned short value, short transferNo) |
Modify the 16-bit DMA transfer parameter, indicated by the parameter field id, fieldId, of the current channel settings. | |
Void | ACPY3_fastConfigure32b (IDMA3_Handle handle, ACPY3_ParamField32b fieldId, Uns value, short transferNo) |
Modify the 32-bit DMA transfer parameter, indicated by the parameter field id, fieldId, of the current channel settings. | |
Void | ACPY3_setFinal (IDMA3_Handle handle, short transferNo) |
Indicate that a given transfer will be the last in a sequence of linked transfers. | |
Void | ACPY3_fastSetFinal (IDMA3_Handle handle, short transferNo) |
Indicate that a given transfer will be the last in a sequence of linked transfers. | |
Void | ACPY3_start (IDMA3_Handle handle) |
Submit a single or linked transfer using the most recently configured transfer parameter settings. | |
Void | ACPY3_wait (IDMA3_Handle handle) |
Wait for all data transfers on a logical channel to complete. | |
Void | ACPY3_waitLinked (IDMA3_Handle handle, unsigned short waitId) |
Wait for an individual transfer in a Linked transfer to finish. | |
Bool | ACPY3_complete (IDMA3_Handle handle) |
Check to see if all dma transfers on logical channel are finished. | |
Bool | ACPY3_completeLinked (IDMA3_Handle handle, unsigned short waitId) |
Non-blocking query to check completion of an individual transfer in a Linked transfer. | |
Void | ACPY3_activate (IDMA3_Handle handle) |
Activate the given channel. | |
Void | ACPY3_deactivate (IDMA3_Handle handle) |
Deactivates the given channel. | |
Void | ACPY3_init (Void) |
Initialize the ACPY3 module. Called by framework. | |
Void | ACPY3_exit (Void) |
Finalization of the ACPY3 module. | |
Defines | |
#define | ACPY3_GTNAME "ti.sdo.fc.acpy3" |
#define | ACPY3_MODNAME "ti.sdo.fc.acpy3" |
Name to pass to Diags_setMask() to enable logging for ACPY3 functions. For example, Diags_setMask(ACPY3_MODNAME"+EX1234567"); turns on all Log statements in this module. Diags_setMask() must be called after initialization to take effect. | |
Data Structures | |
struct | ACPY3_Params |
DMA transfer specific parameters. Defines the configuration of a logical channel. More... | |
Typedefs | |
typedef enum ACPY3_ParamField16b | ACPY3_ParamField16b |
ACPY3 16-bit param field structure. These values are passed to ACPY3_fastConfigure16b() to indicate the field of the ACPY3_Params structure to be changed. | |
typedef enum ACPY3_ParamField32b | ACPY3_ParamField32b |
ACPY3 32-bit param field structure. These values are passed to ACPY3_fastConfigure32b() to indicate the field of the ACPY3_Params structure to be changed. | |
typedef enum ACPY3_TransferType | ACPY3_TransferType |
ACPY3 DMA Transfer Types: | |
typedef struct ACPY3_Params | ACPY3_Params |
DMA transfer specific parameters. Defines the configuration of a logical channel. | |
Enumerations | |
enum | ACPY3_ParamField16b { ACPY3_PARAMFIELD_ELEMENTSIZE = 8, ACPY3_PARAMFIELD_NUMELEMENTS = 10, ACPY3_PARAMFIELD_ELEMENTINDEX_SRC = 16, ACPY3_PARAMFIELD_ELEMENTINDEX_DST = 18, ACPY3_PARAMFIELD_FRAMEINDEX_SRC = 24, ACPY3_PARAMFIELD_FRAMEINDEX_DST = 26, ACPY3_PARAMFIELD_NUMFRAMES = 28 } |
ACPY3 16-bit param field structure. These values are passed to ACPY3_fastConfigure16b() to indicate the field of the ACPY3_Params structure to be changed. More... | |
enum | ACPY3_ParamField32b { ACPY3_PARAMFIELD_SRCADDR = 4, ACPY3_PARAMFIELD_DSTADDR = 12, ACPY3_PARAMFIELD_ELEMENTINDEXES = 16, ACPY3_PARAMFIELD_FRAMEINDEXES = 24 } |
ACPY3 32-bit param field structure. These values are passed to ACPY3_fastConfigure32b() to indicate the field of the ACPY3_Params structure to be changed. More... | |
enum | ACPY3_TransferType { ACPY3_1D1D, ACPY3_1D2D, ACPY3_2D1D, ACPY3_2D2D } |
ACPY3 DMA Transfer Types: More... | |
Variables | |
IDMA3_ProtocolObj | ACPY3_PROTOCOL |
enum | ACPY3_INSTR_HookType { ACPY3_INSTR_START_ENTER = 0, ACPY3_INSTR_START_EXIT, ACPY3_INSTR_WAIT_ENTER, ACPY3_INSTR_WAIT_EXIT } |
Primary instrumentation hook function names. More... | |
enum | ACPY3_INSTR_ExtendedHookType { ACPY3_INSTR_WAITLINKED_ENTER, ACPY3_INSTR_WAITLINKED_EXIT, ACPY3_INSTR_ACTIVATE_ENTER, ACPY3_INSTR_ACTIVATE_EXIT, ACPY3_INSTR_DEACTIVATE_ENTER, ACPY3_INSTR_DEACTIVATE_EXIT, ACPY3_INSTR_COMPLETE_ENTER, ACPY3_INSTR_COMPLETE_EXIT, ACPY3_INSTR_COMPLETELINKED_ENTER, ACPY3_INSTR_COMPLETELINKED_EXIT, ACPY3_INSTR_CONFIGURE_ENTER, ACPY3_INSTR_CONFIGURE_EXIT, ACPY3_INSTR_FASTCONFIGURE16_ENTER, ACPY3_INSTR_FASTCONFIGURE16_EXIT, ACPY3_INSTR_FASTCONFIGURE32_ENTER, ACPY3_INSTR_FASTCONFIGURE32_EXIT, ACPY3_INSTR_SETFINAL_ENTER, ACPY3_INSTR_SETFINAL_EXIT, ACPY3_INSTR_SETFASTFINAL_ENTER, ACPY3_INSTR_SETFASTFINAL_EXIT, ACPY3_INSTR_INIT_ENTER, ACPY3_INSTR_INIT_EXIT, ACPY3_INSTR_EXIT_ENTER, ACPY3_INSTR_EXIT_EXIT } |
Extended instrumentation hook function names. More... | |
typedef enum ACPY3_INSTR_HookType | ACPY3_INSTR_HookType |
Primary instrumentation hook function names. | |
typedef enum ACPY3_INSTR_ExtendedHookType | ACPY3_INSTR_ExtendedHookType |
Extended instrumentation hook function names. | |
typedef void(* | ACPY3_INSTR_HookFxn )(IDMA3_Handle handle, void *param) |
Function signature for hook instrumentation function. | |
typedef struct ACPY3_INSTR_Hook | ACPY3_INSTR_Hook |
Structure that holds the instrumentation hook function and its arguments. | |
typedef struct ACPY3_INSTR_Hooks | ACPY3_INSTR_Hooks |
Array of the primary instrumentation hook functions and their arguments. | |
typedef struct ACPY3_INSTR_ExtendedHooks | ACPY3_INSTR_ExtendedHooks |
Array of the extended instrumentation hook functions and their arguments. | |
Void | ACPY3_INSTR_registerHooks (IDMA3_Handle handle, ACPY3_INSTR_Hooks *hooks, ACPY3_INSTR_ExtendedHooks *extended_hooks) |
Registering the hook functions for instrumentation. | |
Void | ACPY3_INSTR_unregisterHooks (IDMA3_Handle handle) |
Un-registering the hook functions for instrumentation. | |
#define | ACPY3_INSTR_NUMHOOKS 4 |
Number of primary instrumentation hook functions. | |
#define | ACPY3_INSTR_NUMEXTENDEDHOOKS 22 |
The ACPY3 module provides a comprehensive list of DMA operations an algorithm can perform on logical DMA channels it acquires through the IDMA3 protocol. Example of ACPY3 operations include channel configuration, DMA transfer scheduling, and DMA transfer synchronization.
Void ACPY3_configure | ( | IDMA3_Handle | handle, |
ACPY3_Params * | params, | ||
short | transferNo | ||
) |
Functions called by the framework for allocating and initializing the channel state.
Configure all DMA transfer settings for the logical channel.
[in] | handle | IDMA3 channel handle. |
[in] | params | DMA transfer specific parameters used to configure this logical DMA channel. |
[in] | transferNo | Indicates the individual transfer to be configured using the passed 'params' |
Void ACPY3_fastConfigure16b | ( | IDMA3_Handle | handle, |
ACPY3_ParamField16b | fieldId, | ||
unsigned short | value, | ||
short | transferNo | ||
) |
Modify the 16-bit DMA transfer parameter, indicated by the parameter field id, fieldId, of the current channel settings.
[in] | handle | IDMA3 channel handle. |
[in] | fieldId | Indicates which of the parameters is to be modified. |
[in] | value | New value of the parameter to be modified. |
[in] | transferNo | Indicates which transfer the parameters correspond to (same value that would be passed to ACPY3_configure()). logical DMA handle and environment (env, envSize) fields. |
Void ACPY3_fastConfigure32b | ( | IDMA3_Handle | handle, |
ACPY3_ParamField32b | fieldId, | ||
Uns | value, | ||
short | transferNo | ||
) |
Modify the 32-bit DMA transfer parameter, indicated by the parameter field id, fieldId, of the current channel settings.
[in] | handle | IDMA3 channel handle. |
[in] | fieldId | Indicates which of the parameters is to be modified. |
[in] | value | New value of the parameter to be modified. |
[in] | transferNo | Indicates which transfer the parameters correspond to (same value that would be passed to ACPY3_configure()). logical DMA handle and environment (env, envSize) fields. |
handle
must be a valid channel handle.Void ACPY3_setFinal | ( | IDMA3_Handle | handle, |
short | transferNo | ||
) |
Indicate that a given transfer will be the last in a sequence of linked transfers.
This API can be used to dynamically change the number of transfers in a linked transfers. Any waitId previously associated with given transfer "transferNo" will be replaced with the waitId 'numWaits - 1' since ACPY3_wait() uses this waitId to check for transfer completion.
[in] | handle | IDMA3 channel handle. |
[in] | transferNo | Indicates which transfer that will be the last in the set of linked transfers. (This is the same value that was passed to ACPY3_configure()). |
Void ACPY3_fastSetFinal | ( | IDMA3_Handle | handle, |
short | transferNo | ||
) |
Indicate that a given transfer will be the last in a sequence of linked transfers.
This API can be used to dynamically change the number of transfers in a linked transfers. Any waitId previously This function is only usable when the handle only has a single waitId. Otherwise is works exactly the same as ACPY3_setFinal. It just runs much faster.
[in] | handle | IDMA3 channel handle. |
[in] | transferNo | Indicates which transfer that will be the last in the set of linked transfers. (This is the same value that was passed to ACPY3_configure()). |
Void ACPY3_start | ( | IDMA3_Handle | handle ) |
Submit a single or linked transfer using the most recently configured transfer parameter settings.
[in] | handle | IDMA3 channel handle. |
Number of Linked Transfers | ACPY3_DIRTY_BITS=0 | ACPY3_DIRTY_BITS=1 |
---|---|---|
1, 2, or 3 | 89 | 101 |
4, 8, 12, or 16 | 92 | 110 |
all other numbers | 149 | 167 |
Void ACPY3_wait | ( | IDMA3_Handle | handle ) |
Wait for all data transfers on a logical channel to complete.
ACPY3_wait() uses waitId 'numWaits - 1' to wait for the completion of all transfers. Therefore, this waitId should not be used to configure any intermediate transfers.
[in] | handle | IDMA3 channel handle. |
Void ACPY3_waitLinked | ( | IDMA3_Handle | handle, |
unsigned short | waitId | ||
) |
Wait for an individual transfer in a Linked transfer to finish.
[in] | handle | IDMA3 channel handle. |
[in] | waitId | The waitId for the transfer to wait on, that was passed in the ACPY3_Params to ACPY3_configure(). |
Bool ACPY3_complete | ( | IDMA3_Handle | handle ) |
Check to see if all dma transfers on logical channel are finished.
[in] | handle | IDMA3 channel handle. |
TRUE | No transfers are pending (i.e., ACPY3_wait() has been called since last ACPY3_start()), or all transfers on this channel have completed. |
FALSE | One or more transfers on this channel have not completed. |
Bool ACPY3_completeLinked | ( | IDMA3_Handle | handle, |
unsigned short | waitId | ||
) |
Non-blocking query to check completion of an individual transfer in a Linked transfer.
[in] | handle | IDMA3 channel handle. |
[in] | waitId | The waitId for the transfer to check for completion, that was passed in the ACPY3_Params to ACPY3_configure(). |
TRUE | No transfers are pending (i.e., ACPY3_wait() has been called since last ACPY3_start()), or the individual transfer that was configured with waitId has completed. |
FALSE | The transfer configured with waitId has not completed. |
Void ACPY3_activate | ( | IDMA3_Handle | handle ) |
Activate the given channel.
[in] | handle | IDMA3 channel handle. |
handle
must be a valid channel handle.Void ACPY3_deactivate | ( | IDMA3_Handle | handle ) |
Deactivates the given channel.
[in] | handle | IDMA3 channel handle. |
handle
must be a valid channel handle.Void ACPY3_init | ( | Void | ) |
Initialize the ACPY3 module. Called by framework.
Void ACPY3_exit | ( | Void | ) |
Finalization of the ACPY3 module.
Void ACPY3_INSTR_registerHooks | ( | IDMA3_Handle | handle, |
ACPY3_INSTR_Hooks * | hooks, | ||
ACPY3_INSTR_ExtendedHooks * | extended_hooks | ||
) |
Registering the hook functions for instrumentation.
[in] | handle | IDMA3 channel handle. |
[in] | hooks | Primary instrumentation hook functions array |
[in] | extended_hooks | Extended instrumentation hook functions array |
Void ACPY3_INSTR_unregisterHooks | ( | IDMA3_Handle | handle ) |
Un-registering the hook functions for instrumentation.
[in] | handle | IDMA3 channel handle. |
#define ACPY3_GTNAME "ti.sdo.fc.acpy3" |
#define ACPY3_MODNAME "ti.sdo.fc.acpy3" |
Name to pass to Diags_setMask() to enable logging for ACPY3 functions. For example, Diags_setMask(ACPY3_MODNAME"+EX1234567"); turns on all Log statements in this module. Diags_setMask() must be called after initialization to take effect.
#define ACPY3_INSTR_NUMHOOKS 4 |
Number of primary instrumentation hook functions.
#define ACPY3_INSTR_NUMEXTENDEDHOOKS 22 |
typedef enum ACPY3_ParamField16b ACPY3_ParamField16b |
ACPY3 16-bit param field structure. These values are passed to ACPY3_fastConfigure16b() to indicate the field of the ACPY3_Params structure to be changed.
typedef enum ACPY3_ParamField32b ACPY3_ParamField32b |
ACPY3 32-bit param field structure. These values are passed to ACPY3_fastConfigure32b() to indicate the field of the ACPY3_Params structure to be changed.
typedef enum ACPY3_TransferType ACPY3_TransferType |
ACPY3 DMA Transfer Types:
Note that all transfers can be specified using the ACPY3_2D2D transfer type, and providing element and frame indices for both source and destination. However, the other transfer types are provided to simplify configuration when applicable. For example, when using the ACPY3_1D2D transfer type, you do not need to set the source element and frame indices in the ACPY3_Params structure.
typedef struct ACPY3_Params ACPY3_Params |
DMA transfer specific parameters. Defines the configuration of a logical channel.
typedef enum ACPY3_INSTR_HookType ACPY3_INSTR_HookType |
Primary instrumentation hook function names.
typedef enum ACPY3_INSTR_ExtendedHookType ACPY3_INSTR_ExtendedHookType |
Extended instrumentation hook function names.
typedef void(* ACPY3_INSTR_HookFxn)(IDMA3_Handle handle, void *param) |
Function signature for hook instrumentation function.
typedef struct ACPY3_INSTR_Hook ACPY3_INSTR_Hook |
Structure that holds the instrumentation hook function and its arguments.
typedef struct ACPY3_INSTR_Hooks ACPY3_INSTR_Hooks |
Array of the primary instrumentation hook functions and their arguments.
typedef struct ACPY3_INSTR_ExtendedHooks ACPY3_INSTR_ExtendedHooks |
Array of the extended instrumentation hook functions and their arguments.
enum ACPY3_ParamField16b |
ACPY3 16-bit param field structure. These values are passed to ACPY3_fastConfigure16b() to indicate the field of the ACPY3_Params structure to be changed.
enum ACPY3_ParamField32b |
ACPY3 32-bit param field structure. These values are passed to ACPY3_fastConfigure32b() to indicate the field of the ACPY3_Params structure to be changed.
enum ACPY3_TransferType |
ACPY3 DMA Transfer Types:
Note that all transfers can be specified using the ACPY3_2D2D transfer type, and providing element and frame indices for both source and destination. However, the other transfer types are provided to simplify configuration when applicable. For example, when using the ACPY3_1D2D transfer type, you do not need to set the source element and frame indices in the ACPY3_Params structure.
ACPY3_1D1D |
Only one element is copied from source to destination. The size of the element is specified in the elementSize field of ACPY3_Params |
ACPY3_1D2D |
After each element is copied to destination, the source and destination of the next element to copy is updated as follows:
After an entire frame is copied (the frame size specified by the numElements field of ACPY3_Params), the source and destination of the next frame to copy are given by:
|
ACPY3_2D1D |
This is similar to ACPY3_1D2D, except that source and destination are updated after an element is copied, as follows:
After an entire frame is copied by:
|
ACPY3_2D2D |
This transfer type combines ACPY3_1D2D and ACPY3_2D1D, so that source and destination are updated after an element is copied by:
After a frame is copied by:
|
enum ACPY3_INSTR_HookType |
Extended instrumentation hook function names.