📄 csl_intcaux.h
字号:
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n INTC hardware registers
*
* @b Example
* @verbatim
CSL_BitMask32 dropMask;
...
CSL_intcInterruptDropEnable(dropMask );
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE void CSL_intcInterruptDropEnable (
CSL_BitMask32 dropMask
)
{
((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->INTDMASK &= ~dropMask;
}
/* ============================================================================
* @n@b CSL_intcInterruptDropDisable
*
* @b Description
* This API disables interrupts for which drop detection
*
* @b Arguments
* @verbatim
dropMask Vector id mask
@endverbatim
*
* <b> Return Value </b>
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n INTC hardware registers
*
* @b Example
* @verbatim
CSL_BitMask32 dropMask;
...
CSL_intcInterruptDropEnable(dropMask);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE void CSL_intcInterruptDropDisable (
CSL_BitMask32 dropMask
)
{
((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->INTDMASK |= dropMask;
}
/* ============================================================================
* @n@b CSL_intcInvokeEventHandle
*
* @b Description
* This API is for the purpose of excption handler which will need to be
* written by the user. This API invokes the event handler regisered by
* the user at the time of event Open and event handler registration
*
* @b Arguments
* @verbatim
evtId Intc event identifier
@endverbatim
*
* <b> Return Value </b>
* CSL_SOK - success.
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_Status status;
CSL_IntcEventId evtId;
...
status = CSL_intcInvokeEventHandle(evtId);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE CSL_Status CSL_intcInvokeEventHandle (
CSL_IntcEventId evtId
)
{
if (_CSL_intcEventOffsetMap[evtId] != CSL_INTC_MAPPED_NONE)
_CSL_intcEventHandlerRecord[_CSL_intcEventOffsetMap[evtId]].handler (
_CSL_intcEventHandlerRecord[_CSL_intcEventOffsetMap[evtId]].arg );
return CSL_SOK;
}
/* ============================================================================
* @n@b CSL_intcQueryEventStatus
*
* @b Description
* This API is to check whether a specified event is enabled or not
*
* @b Arguments
* @verbatim
eventId - Intc event identifier.
@endverbatim
*
* <b> Return Value </b>
* Bool
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcEventId eventId;
Bool returnVal;
...
returnVal = CSL_intcQueryEventStatus(eventId);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE Bool CSL_intcQueryEventStatus(CSL_IntcEventId eventId)
{
Int _x;
Int _y;
_y = eventId >> 5;
_x = eventId & 0x1F;
return ((Bool)(CSL_FEXTR(((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EVTFLAG[_y], \
_x,_x)));
}
/* CPU Interrupt Handling routines */
/* ============================================================================
* @n@b CSL_intcInterruptEnable
*
* @b Description
* This API is enables the Interrupt
*
* @b Arguments
* @verbatim
vectId vector id to enable.
@endverbatim
*
* <b> Return Value </b>
* Uint32 - previous state
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcVectId vectId;
Uint32 returnVal;
...
returnVal = CSL_intcInterruptEnable(vectId);
...
@endverbatim
* ===========================================================================
*/
Uint32 CSL_intcInterruptEnable (
CSL_IntcVectId vectId
);
/* ============================================================================
* @n@b CSL_intcInterruptDisable
*
* @b Description
* This API is used to disable the interrupt
*
* @b Arguments
* @verbatim
vectId Vector Id to disable.
@endverbatim
*
* <b> Return Value </b>
* Uint32 - previous state
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcVectId vectId;
Uint32 returnVal;
...
returnVal = CSL_intcInterruptDisable(vectID);
...
@endverbatim
* ===========================================================================
*/
Uint32 CSL_intcInterruptDisable (
CSL_IntcVectId vectId
);
/* ============================================================================
* @n@b CSL_intcInterruptRestore
*
* @b Description
* This API restores the Interrupt
*
* @b Arguments
* @verbatim
vectId vector id to restore.
restoreVal Value to be restored
@endverbatim
*
* <b> Return Value </b>
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcVectId vectId;
Uint32 restoreVal;
...
CSL_intcInterruptDisable(vectId, restoreVal);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE void CSL_intcInterruptRestore (
CSL_IntcVectId vectId,
Uint32 restoreVal
);
/* ============================================================================
* @n@b CSL_intcInterruptSet
*
* @b Description
* This API is sets interrupt.
*
* @b Arguments
* @verbatim
vectId Vector id to set
@endverbatim
*
* <b> Return Value </b>
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcVectId vectId;
...
CSL_intcInterruptSet(vectId);
...
@endverbatim
* ===========================================================================
*/
void CSL_intcInterruptSet (
CSL_IntcVectId vectId
);
/* ============================================================================
* @n@b CSL_intcInterruptClear
*
* @b Description
* This API is clears specified interrupt
*
* @b Arguments
* @verbatim
vectId Vector id to cleared
@endverbatim
*
* <b> Return Value </b>
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcVectId vectId;
...
CSL_intcInterruptClear (vectId);
...
@endverbatim
* ===========================================================================
*/
void CSL_intcInterruptClear (
CSL_IntcVectId vectId
);
/* ============================================================================
* @n@b CSL_intcQueryInterruptStatus
*
* @b Description
* This API is to check whether a specified CPU interrupt is pending or not
*
* @b Arguments
* @verbatim
vectId Vector id
@endverbatim
*
* <b> Return Value </b>
* Bool
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_IntcVectId vectId;
Bool returnVal;
...
returnVal = CSL_intcInterruptSet(vectId);
...
@endverbatim
* ===========================================================================
*/
Bool CSL_intcQueryInterruptStatus (
CSL_IntcVectId vectId
);
/* Exception handling routines */
/* ============================================================================
* @n@b CSL_intcExcepEnable
*
* @b Description
* This API enables the specific exception event
*
* @b Arguments
* @verbatim
eventId exception event id to be enabled
@endverbatim
*
* <b> Return Value </b>
* CSL_IntcEventEnableState - old state.
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n INTC hardware registers
*
* @b Example
* @verbatim
CSL_IntcEventId eventId;
CSL_IntcEventEnableState returnVal;
...
returnVal = CSL_intcExcepEnable(eventId);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE CSL_IntcEventEnableState CSL_intcExcepEnable (
CSL_IntcEventId eventId
)
{
Int _x;
Int _y;
Int _regVal;
CSL_IntcEventEnableState _oldState;
_y = eventId >> 5;
_x = eventId & 0x1f;
_regVal = ((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EXPMASK[_y];
_oldState = CSL_FEXTR(_regVal,_x,_x);
CSL_FINSR(_regVal,_x,_x,0);
((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EXPMASK[_y] = _regVal;
return _oldState;
}
/* ============================================================================
* @n@b CSL_intcExcepDisable
*
* @b Description
* This API is disables the specific exception event
*
* @b Arguments
* @verbatim
eventId exception event id to be disabled
@endverbatim
*
* <b> Return Value </b>
* CSL_IntcEventEnableState - old state
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n INTC hardware registers
*
* @b Example
* @verbatim
CSL_IntcEventId eventId;
CSL_IntcEventEnableState returnVal;
...
returnVal = CSL_intcExcepDisable(eventId);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE CSL_IntcEventEnableState CSL_intcExcepDisable (
CSL_IntcEventId eventId
)
{
Int _x;
Int _y;
Int _regVal;
CSL_IntcEventEnableState oldState;
_y = eventId >> 5;
_x = eventId & 0x1f;
_regVal = ((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EXPMASK[_y];
oldState = CSL_FEXTR(_regVal,_x,_x);
CSL_FINSR(_regVal,_x,_x,1);
((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EXPMASK[_y] = _regVal;
return oldState;
}
/* ============================================================================
* @n@b CSL_intcExcepRestore
*
* @b Description
* This API restores the specific exception event
*
* @b Arguments
* @verbatim
eventId exception event id to be restored.
restoreVal restore value
@endverbatim
*
* <b> Return Value </b>
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n INTC hardware registers
*
* @b Example
* @verbatim
CSL_IntcEventId eventId;
Uint32 restoreVal;
...
CSL_intcExcepRestore(eventId, restoreVal);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE void CSL_intcExcepRestore (
CSL_IntcEventId eventId,
Uint32 restoreVal
)
{
Int _x;
Int _y;
_y = eventId >> 5;
_x = eventId & 0x1F;
CSL_FINSR(((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EXPMASK[_y],_x,_x, \
restoreVal);
}
/* ============================================================================
* @n@b CSL_intcExcepClear
*
* @b Description
* This API clears the specific exception event
*
* @b Arguments
* @verbatim
eventId exception event id to be cleared
@endverbatim
*
* <b> Return Value </b>
* None
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n INTC hardware registers
*
* @b Example
* @verbatim
CSL_IntcEventId eventId;
...
CSL_intcExcepClear(eventId);
...
@endverbatim
* ===========================================================================
*/
CSL_IDEF_INLINE void CSL_intcExcepClear (
CSL_IntcEventId eventId
)
{
Int _x;
Int _y;
_y = eventId >> 5;
_x = eventId & 0x1F;
CSL_FINSR(((CSL_IntcRegsOvly)CSL_INTC_0_REGS)->EVTCLR[_y],_x,_x,1);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -