Modules | |
Resource Type | |
Typedefs | |
typedef void(* | EDMA3_RM_TccCallback )(unsigned int tcc, EDMA3_RM_TccStatus status, void *appData) |
TCC callback - caters to channel-specific events like "Event Miss Error" or "Transfer Complete". Runs in ISR context. | |
Functions | |
EDMA3_RM_Result | EDMA3_RM_registerTccCb (EDMA3_RM_Handle hEdmaResMgr, const EDMA3_RM_ResDesc *channelObj, unsigned int tcc, EDMA3_RM_TccCallback tccCb, void *cbData) |
Register Interrupt / Completion Handler for a given TCC. | |
EDMA3_RM_Result | EDMA3_RM_unregisterTccCb (EDMA3_RM_Handle hEdmaResMgr, const EDMA3_RM_ResDesc *channelObj) |
Unregister the previously registered callback function against a DMA/QDMA channel. |
typedef void(* EDMA3_RM_TccCallback)(unsigned int tcc, EDMA3_RM_TccStatus status, void *appData) |
TCC callback - caters to channel-specific events like "Event Miss Error" or "Transfer Complete". Runs in ISR context.
appData is passed by the application during Register'ing of TCC Callback function.
EDMA3_RM_Result EDMA3_RM_registerTccCb | ( | EDMA3_RM_Handle | hEdmaResMgr, | |
const EDMA3_RM_ResDesc * | channelObj, | |||
unsigned int | tcc, | |||
EDMA3_RM_TccCallback | tccCb, | |||
void * | cbData | |||
) |
Register Interrupt / Completion Handler for a given TCC.
This function enables the interrupts in IESR/IESRH, only if the callback function provided by the user is NON-NULL. Moreover, if a call-back function is already registered against that TCC, the API fails with the error code EDMA3_RM_E_CALLBACK_ALREADY_REGISTERED. For a NULL callback function, this API returns error.
hEdmaResMgr | [IN] Handle to the previously opened EDMA3 Resource Manager Instance | |
channelObj | [IN] Channel ID and type (DMA or QDMA Channel), allocated earlier, and corresponding to which a callback function needs to be registered against the associated TCC. | |
tcc | [IN] TCC against which the handler needs to be registered. | |
tccCb | [IN] The Callback function to be registered against the TCC. | |
cbData | [IN] Callback data to be passed while calling the callback function. |
Enable the interrupts in IESR/IESRH, only if the Callback function is NOT NULL.
References EDMA3_RM_TccCallbackParams::cbData, EDMA3_RM_E_CALLBACK_ALREADY_REGISTERED, EDMA3_RM_E_INVALID_PARAM, EDMA3_RM_RES_DMA_CHANNEL, EDMA3_RM_RES_QDMA_CHANNEL, EDMA3_RM_Obj::gblCfgParams, EDMA3_RM_GblConfigParams::numDmaChannels, EDMA3_RM_GblConfigParams::numQdmaChannels, EDMA3_RM_GblConfigParams::numTccs, EDMA3_RM_Instance::pResMgrObjHandle, EDMA3_RM_ResDesc::resId, EDMA3_RM_Instance::shadowRegs, EDMA3_RM_TccCallbackParams::tccCb, and EDMA3_RM_ResDesc::type.
EDMA3_RM_Result EDMA3_RM_unregisterTccCb | ( | EDMA3_RM_Handle | hEdmaResMgr, | |
const EDMA3_RM_ResDesc * | channelObj | |||
) |
Unregister the previously registered callback function against a DMA/QDMA channel.
This function unregisters the previously registered callback function against a DMA/QDMA channel by removing any stored callback function. Moreover, it clears the interrupt enable register (IESR/IESRH) by writing to the IECR/ IECRH register, for the TCC associated with that particular channel.
hEdmaResMgr | [IN] Handle to the previously opened EDMA3 Resource Manager Instance | |
channelObj | [IN] Channel ID and type, allocated earlier (DMA or QDMA Channel ONLY), and corresponding to which a TCC is there. Against that TCC, the callback needs to be un-registered. |
References EDMA3_RM_TccCallbackParams::cbData, EDMA3_RM_E_INVALID_PARAM, EDMA3_RM_RES_DMA_CHANNEL, EDMA3_RM_RES_QDMA_CHANNEL, EDMA3_RM_Obj::gblCfgParams, EDMA3_RM_GblConfigParams::numDmaChannels, EDMA3_RM_GblConfigParams::numQdmaChannels, EDMA3_RM_Instance::pResMgrObjHandle, EDMA3_RM_ResDesc::resId, EDMA3_RM_Instance::shadowRegs, EDMA3_RM_TccCallbackParams::tccCb, and EDMA3_RM_ResDesc::type.