📄 csl_edma3.h
字号:
CSL_EDMA3_QUE_THR_DISABLE = 17
}CSL_Edma3QueThr;
/** MODULE Level Commands */
typedef enum {
#if CSL_EDMA3_MEMPROTECT
/**
* @brief Programmation of MPPAG,MPPA[0-7] attributes
*
* @param (CSL_Edma3CmdRegion *)
*/
CSL_EDMA3_CMD_MEMPROTECT_SET,
/**
* @brief Clear Memory Fault
*
* @param (None)
*/
CSL_EDMA3_CMD_MEMFAULT_CLEAR,
#endif
/**
* @brief Enables bits as specified in the argument passed in
* DRAE/DRAEH. Please note:If bits are already set in
* DRAE/DRAEH this Control command will cause additional bits
* (as specified by the bitmask) to be set and does
* @param (CSL_Edma3CmdDrae *)
*/
CSL_EDMA3_CMD_DMAREGION_ENABLE,
/**
* @brief Disables bits as specified in the argument passed in
* DRAE/DRAEH
* @param (CSL_Edma3CmdDrae *)
*/
CSL_EDMA3_CMD_DMAREGION_DISABLE,
/**
* @brief Enables bits as specified in the argument
* passed in QRAE.Pleasenote:If bits are already set in
* QRAE/QRAEH this Control command will cause additional bits
* (as specified by the bitmask) to be set and does
* @param (CSL_Edma3CmdQrae *)
*/
CSL_EDMA3_CMD_QDMAREGION_ENABLE,
/**
* @brief Disables bits as specified in the argument passed in QRAE
* DRAE/DRAEH
* @param (CSL_Edma3CmdQrae *)
*/
CSL_EDMA3_CMD_QDMAREGION_DISABLE,
/**
* @brief Programmation of QUEPRI register with the specified priority
* DRAE/DRAEH
* @param (CSL_Edma3CmdQuePri *)
*/
CSL_EDMA3_CMD_QUEPRIORITY_SET,
/**
* @brief Programmation of QUE Threshold levels
*
* @param (CSL_Edma3CmdQueThr *)
*/
CSL_EDMA3_CMD_QUETHRESHOLD_SET,
/**
* @brief Sets the EVAL bit in the EEVAL register
*
* @param (None)
*/
CSL_EDMA3_CMD_ERROR_EVAL,
/**
* @brief Clears specified (Bitmask)pending interrupt at Module/Region
* Level
* @param (CSL_Edma3CmdIntr *)
*/
CSL_EDMA3_CMD_INTRPEND_CLEAR,
/**
* @brief Enables specified interrupts(BitMask) at Module/Region Level
*
* @param (CSL_Edma3CmdIntr *)
*/
CSL_EDMA3_CMD_INTR_ENABLE,
/**
* @brief Disables specified interrupts(BitMask) at Module/Region
* Level
* @param (CSL_Edma3CmdIntr *)
*/
CSL_EDMA3_CMD_INTR_DISABLE,
/**
* @brief Interrupt Evaluation asserted for the Module/Region
*
* @param (Int *)
*/
CSL_EDMA3_CMD_INTR_EVAL,
/**
* @brief Clear the EDMA Controller Erorr
*
* @param (CSL_Edma3CtrlErrStat *)
*/
CSL_EDMA3_CMD_CTRLERROR_CLEAR ,
/**
* @brief Pointer to an array of 3 elements, where element0 refers to
* the EMR register to be cleared, element1 refers to the EMRH
* register to be cleared, element2 refers to the QEMR register
* to be cleared.
* @param (CSL_BitMask32 *)
*/
CSL_EDMA3_CMD_EVENTMISSED_CLEAR
} CSL_Edma3HwControlCmd;
/** @brief MODULE Level Queries */
typedef enum {
#if CSL_EDMA3_MEMPROTECT
/**
* @brief Return the Memory fault details
*
* @param (CSL_Edma3MemFaultStat *)
*/
CSL_EDMA3_QUERY_MEMFAULT,
/**
* @brief Return memory attribute of the specified region
*
* @param (CSL_Edma3CmdRegion *)
*/
CSL_EDMA3_QUERY_MEMPROTECT,
#endif
/**
* @brief Return Controller Error
*
* @param (CSL_Edma3CtrlErrStat *)
*/
CSL_EDMA3_QUERY_CTRLERROR,
/**
* @brief Return pend status of specified interrupt
*
* @param (CSL_Edma3CmdIntr *)
*/
CSL_EDMA3_QUERY_INTRPEND,
/**
* @brief Returns Miss Status of all Channels
* Pointer to an array of 3 elements, where element0 refers to
* the EMR registr, element1 refers to the EMRH register,
* element2 refers to the QEMR register
* @param (CSL_BitMask32 *)
*/
CSL_EDMA3_QUERY_EVENTMISSED,
/**
* @brief Returns the Que status
*
* @param (CSL_Edma3QueStat *)
*/
CSL_EDMA3_QUERY_QUESTATUS,
/**
* @brief Returns the Channel Controller Active Status
*
* @param (CSL_Edma3ActivityStat *)
*/
CSL_EDMA3_QUERY_ACTIVITY,
/**
* @brief Returns the Channel Controller Information viz.
* Configuration, Revision Id
* @param (CSL_Edma3QueryInfo *)
*/
CSL_EDMA3_QUERY_INFO
} CSL_Edma3HwStatusQuery;
/** @brief CHANNEL Commands */
typedef enum {
/**
* @brief Enables specified Channel
*
* @param (None)
*/
CSL_EDMA3_CMD_CHANNEL_ENABLE,
/**
* @brief Disables specified Channel
*
* @param (None)
*/
CSL_EDMA3_CMD_CHANNEL_DISABLE,
/**
* @brief Manually sets the Channel Event,writes into ESR/ESRH
* and not ER.NA for QDMA
* @param (None)
*/
CSL_EDMA3_CMD_CHANNEL_SET,
/**
* @brief Manually clears the Channel Event, does not write into
* ESR/ESRH or ER/ERH but the ECR/ECRH. NA for QDMA
* @param (None)
*/
CSL_EDMA3_CMD_CHANNEL_CLEAR,
/**
* @brief In case of DMA channels clears SER/SERH(by writing into
* SECR/SECRH if "secEvt" and "missed" are both TRUE) and
* EMR/EMRH(by writing into EMCR/EMCRH if "missed" is TRUE).
* In case of QDMA channels clears QSER(by writing into QSECR
* if "ser" and "missed" are both TRUE) and QEMR(by writing
* into QEMCR if "missed" is TRUE)
* @param (CSL_Edma3ChannelErr *)
*/
CSL_EDMA3_CMD_CHANNEL_CLEARERR
} CSL_Edma3HwChannelControlCmd;
/** @brief CHANNEL Queries */
typedef enum {
/**
* @brief In case of DMA channels returns TRUE if ER/ERH is set,
* In case of QDMA channels returns TRUE if QER is set
* @param (Bool *)
*/
CSL_EDMA3_QUERY_CHANNEL_STATUS,
/**
* @brief In case of DMA channels,'missed' is set
* to TRUE if EMR/EMRH is set, 'secEvt' is set to TRUE if
* SER/SERH is set.In case of QDMA channels,'missed' is set to
* TRUE if QEMR is set, 'secEvt' is set to TRUE if QSER is set.
* It should be noted that if secEvt ONLY is set to TRUE it
* may not be a valid error condition
* @param (CSL_Edma3ChannelErr *)
*/
CSL_EDMA3_QUERY_CHANNEL_ERR
} CSL_Edma3HwChannelStatusQuery;
/** @brief Module specific context information.
* This is a dummy handle.
*/
typedef void *CSL_Edma3Context;
/** @brief Module Attributes specific information.
* This is a dummy handle.
*/
typedef void *CSL_Edma3ModuleAttr;
/** @brief This object contains the reference to the instance of Edma Module
* opened using the @a CSL_edma3Open().
*
* A pointer to this object is passed to all Edma Module level CSL APIs.
*/
typedef struct CSL_Edma3Obj {
/** This is a pointer to the Edma Channel Controller registers of the module
* requested
*/
CSL_Edma3ccRegsOvly regs;
/** This is the instance of module number i.e CSL_EDMA3 */
CSL_InstNum instNum;
} CSL_Edma3Obj;
/** @brief EDMA handle */
typedef struct CSL_Edma3Obj *CSL_Edma3Handle;
/** CSL Parameter Set Handle */
typedef volatile CSL_Edma3ccParamsetRegs *CSL_Edma3ParamHandle;
/** @brief Edma ParamSetup Structure
*
* An object of this type is allocated by the user and
* its address is passed as a parameter to the CSL_edma3ParamSetup().
* This structure is used to program the Param Set for EDMA/QDMA.
* The macros can be used to assign values to the fields of the structure.
* The setup structure should be setup using the macros provided OR
* as per the bit descriptions in the user guide..
*
*/
typedef struct CSL_Edma3ParamSetup {
/** Options */
Uint32 option;
/** Specifies the source address */
Uint32 srcAddr;
/** Lower 16 bits are A Count Upper 16 bits are B Count*/
Uint32 aCntbCnt;
/** Specifies the destination address */
Uint32 dstAddr;
/** Lower 16 bits are source b index Upper 16 bits are
* destination b index
*/
Uint32 srcDstBidx;
/** Lower 16 bits are link of the next param entry Upper 16 bits are
* b count reload
*/
Uint32 linkBcntrld;
/** Lower 16 bits are source c index Upper 16 bits are destination
* c index
*/
Uint32 srcDstCidx;
/** C count */
Uint32 cCnt;
} CSL_Edma3ParamSetup;
/** @brief Edma Object Structure
*
* An object of this type is allocated by the user and
* its address is passed as a parameter to the CSL_edma3ChannelOpen()
* The CSL_edma3ChannelOpen() updates all the members of the data structure
* and returns the objects address as a @a #CSL_Edma3ChannelHandle. The
* @a #CSL_Edma3ChannelHandle is used in all subsequent function calls.
*/
typedef struct CSL_Edma3ChannelObj {
/** Pointer to the Edma Channel Controller module register
* Overlay structure
*/
CSL_Edma3ccRegsOvly regs;
/** Region number to which the channel belongs to */
Int region;
/** EDMA instance whose channel is being requested */
Int edmaNum;
/** Channel Number being requested */
Int chaNum;
} CSL_Edma3ChannelObj;
/** CSL Channel Handle
* All channel level API calls must be made with this handle.
*/
typedef struct CSL_Edma3ChannelObj *CSL_Edma3ChannelHandle;
#if CSL_EDMA3_MEMPROTECT
/** @brief Edma Memory Protection Fault Error Status
*
* An object of this type is allocated by the user and
* its address is passed as a parameter to the CSL_edma3GetMemoryFaultError()
* / CSL_edma3GetHwStatus() with the relevant command. This is relevant only is
* MPEXIST is present for a given device.
*/
typedef struct CSL_Edma3MemFaultStat {
/** Memory Protection Fault Address */
Uint32 addr;
/** Bit Mask of the Errors */
CSL_BitMask16 error;
/** Faulted ID */
Uint16 fid;
} CSL_Edma3MemFaultStat;
#endif
/** @brief Edma Controller Error Status.
*
* An object of this type is allocated by the user and
* its address is passed as a parameter to the CSL_edma3GetControllerError()
* /CSL_edma3GetHwStatus().
*/
typedef struct CSL_Edma3CtrlErrStat {
/** Bit Mask of the Que Threshold Errors */
CSL_BitMask16 error;
/** Whether number of permissible outstanding Tcc's is exceeded */
Bool exceedTcc;
} CSL_Edma3CtrlErrStat;
/** @brief Edma Controller Information
*
* An object of this type is allocated by the user and
* its address is passed as a parameter to the CSL_edma3GetInfo()
* /CSL_edma3GetHwStatus().
*/
typedef struct CSL_Edma3QueryInfo{
/** Revision/Periperhal id of the EDMA3 Channel Controller */
Uint32 revision;
/** Channel Controller Configuration obtained from the CCCFG register */
Uint32 config;
} CSL_Edma3QueryInfo;
/** @brief Edma Channel Controller Activity Status
*
* An object of this type is allocated by the user and
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -