_csl_intc1.h
来自「dsp在音频处理中的运用」· C头文件 代码 · 共 441 行
H
441 行
/*****************************************************\
* Copyright 2003, Texas Instruments Incorporated. *
* All rights reserved. *
* Restricted rights to use, duplicate or disclose *
* this code are granted through contract. *
* *
* "@(#) PSP/CSL 3.0.0.0 (2003-09-30) *
\*****************************************************/
#ifndef _CSL_INTC1_H_
#define _CSL_INTC1_H_
#include <csl.h>
#include <soc.h>
#include <cslr_intc1.h>
/**************************************************************************\
* INTC1 global macro declarations
\**************************************************************************/
#define _CSL_INTC1_EVT_CNT (32)
/* Number of Events */
/**************************************************************************\
* INTC1 global typedef declarations
\**************************************************************************/
/* Interrupt Priority */
typedef enum {
_CSL_INTC1_PRIORITY_DEFAULT = 0
} _CSL_Intc1Priority;
/* Interrupt Routing */
typedef enum {
_CSL_INTC1_ROUTE_IRQ = 0,
_CSL_INTC1_ROUTE_FIQ = 1
} _CSL_Intc1Route;
/* Interrupt Sensitivity */
typedef enum {
_CSL_INTC1_SENSE_FALLINGEDGE = 0,
_CSL_INTC1_SENSE_LOWLEVEL = 1
} _CSL_Intc1Sense;
/* Interrupt Enable/Disable State */
typedef enum {
_CSL_INTC1_STATE_ENABLE = 0,
_CSL_INTC1_STATE_DISABLE = 1
} _CSL_Intc1EventEnableState;
/* Global Interrupt Enable/Disable State */
typedef enum {
_CSL_INTC1_GBLSTATE_ENABLE = 0,
_CSL_INTC1_GBLSTATE_DISABLE = 1
} _CSL_Intc1GlobalEnableState;
/* The Interrupt Event-ID */
typedef int _CSL_Intc1EventId;
/* Interrupt setup-structure */
typedef struct _CSL_Intc1Setup {
_CSL_Intc1Priority priority;
_CSL_Intc1Route route;
_CSL_Intc1Sense sense;
} _CSL_Intc1Setup;
/**************************************************************************\
* INTC1 global function declarations
\**************************************************************************/
/**************************************************************************\
* INTC1 inline function declarations
\**************************************************************************/
inline void _CSL_intc1Init(
void
);
inline _CSL_Intc1Priority _CSL_intc1GetPriority(
_CSL_Intc1EventId evtId
);
inline void _CSL_intc1SetPriority(
_CSL_Intc1EventId evtId,
_CSL_Intc1Priority priority
);
inline _CSL_Intc1Route _CSL_intc1GetRoute(
_CSL_Intc1EventId evtId
);
inline void _CSL_intc1SetRoute(
_CSL_Intc1EventId evtId,
_CSL_Intc1Route route_IRQ_or_FIQ
);
inline _CSL_Intc1Sense _CSL_intc1GetSense(
_CSL_Intc1EventId evtId
);
inline void _CSL_intc1SetSense(
_CSL_Intc1EventId evtId,
_CSL_Intc1Sense sense
);
inline void _CSL_intc1Setup(
_CSL_Intc1EventId evtId,
_CSL_Intc1Setup *setup
);
inline void _CSL_intc1GetSetup(
_CSL_Intc1EventId evtId,
_CSL_Intc1Setup *setup
);
inline _CSL_Intc1EventId _CSL_intc1GetActiveFIQ(
void
);
inline _CSL_Intc1EventId _CSL_intc1GetActiveIRQ(
void
);
inline void _CSL_intc1AckFIQ(
void
);
inline void _CSL_intc1AckIRQ(
void
);
inline _CSL_Intc1EventEnableState _CSL_intc1Enable(
_CSL_Intc1EventId evtId
);
inline _CSL_Intc1EventEnableState _CSL_intc1Disable(
_CSL_Intc1EventId evtId
);
inline _CSL_Intc1EventEnableState _CSL_intc1Restore(
_CSL_Intc1EventId evtId,
_CSL_Intc1EventEnableState enState
);
inline Bool _CSL_intc1Test(
_CSL_Intc1EventId evtId
);
inline void _CSL_intc1Set(
_CSL_Intc1EventId evtId
);
inline void _CSL_intc1Clear(
_CSL_Intc1EventId evtId
);
inline void _CSL_intc1Reset(
_CSL_Intc1EventId evtId
);
inline _CSL_Intc1GlobalEnableState _CSL_intc1GlobalEnable(
void
);
inline _CSL_Intc1GlobalEnableState _CSL_intc1GlobalDisable(
void
);
inline _CSL_Intc1GlobalEnableState _CSL_intc1GlobalRestore(
_CSL_Intc1GlobalEnableState globalEn
);
/**************************************************************************\
* INTC1 inline function definitions
\**************************************************************************/
inline void _CSL_intc1Init(
void
)
{
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1Priority _CSL_intc1GetPriority(
_CSL_Intc1EventId evtId
)
{
return (_CSL_Intc1Priority)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId], INTC1_ILR_PRIORITY);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1SetPriority(
_CSL_Intc1EventId evtId,
_CSL_Intc1Priority priority
)
{
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId], INTC1_ILR_PRIORITY, priority);
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1Route _CSL_intc1GetRoute(
_CSL_Intc1EventId evtId
)
{
return (_CSL_Intc1Route)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId], INTC1_ILR_FIQ);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1SetRoute(
_CSL_Intc1EventId evtId,
_CSL_Intc1Route route_IRQ_or_FIQ
)
{
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId], INTC1_ILR_FIQ, route_IRQ_or_FIQ);
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1Sense _CSL_intc1GetSense(
_CSL_Intc1EventId evtId
)
{
return (_CSL_Intc1Sense)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId], INTC1_ILR_SENSE_EDGE);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1SetSense(
_CSL_Intc1EventId evtId,
_CSL_Intc1Sense sense
)
{
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId], INTC1_ILR_SENSE_EDGE, sense);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1Setup(
_CSL_Intc1EventId evtId,
_CSL_Intc1Setup *setup
)
{
((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId] =
CSL_FMK(INTC1_ILR_PRIORITY, setup->priority)
| CSL_FMK(INTC1_ILR_SENSE_EDGE, setup->sense)
| CSL_FMK(INTC1_ILR_FIQ, setup->route);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1GetSetup(
_CSL_Intc1EventId evtId,
_CSL_Intc1Setup *setup
)
{
register int ilr;
ilr = ((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ILR[evtId];
setup->priority = (_CSL_Intc1Priority)CSL_FEXT(ilr, INTC1_ILR_PRIORITY);
setup->sense = (_CSL_Intc1Sense)CSL_FEXT(ilr, INTC1_ILR_SENSE_EDGE);
setup->route = (_CSL_Intc1Route)CSL_FEXT(ilr, INTC1_ILR_FIQ);
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1EventId _CSL_intc1GetActiveFIQ(
void
)
{
return (_CSL_Intc1EventId)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->SFR, INTC1_SFR_IRQ);
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1EventId _CSL_intc1GetActiveIRQ(
void
)
{
return (_CSL_Intc1EventId)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->SIR, INTC1_SIR_IRQ);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1AckFIQ(
void
)
{
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ICR, INTC1_ICR_NEW_FIQ_AGR, 1);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1AckIRQ(
void
)
{
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ICR, INTC1_ICR_NEW_IRQ_AGR, 1);
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1EventEnableState _CSL_intc1Enable(
_CSL_Intc1EventId evtId
)
{
_CSL_Intc1EventEnableState en;
en = (_CSL_Intc1EventEnableState)CSL_FEXTR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId);
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId, CSL_INTC1_MIR_MASK_ENABLE);
return en;
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1EventEnableState _CSL_intc1Disable(
_CSL_Intc1EventId evtId
)
{
_CSL_Intc1EventEnableState en;
en = (_CSL_Intc1EventEnableState)CSL_FEXTR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId);
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId, CSL_INTC1_MIR_MASK_DISABLE);
return en;
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1EventEnableState _CSL_intc1Restore(
_CSL_Intc1EventId evtId,
_CSL_Intc1EventEnableState enState
)
{
_CSL_Intc1EventEnableState en;
en = (_CSL_Intc1EventEnableState)CSL_FEXTR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId);
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId, enState);
return en;
}
/*------------------------------------------------------------------------*/
inline Bool _CSL_intc1Test(
_CSL_Intc1EventId evtId
)
{
return (Bool)CSL_FEXTR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ITR, evtId, evtId);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1Set(
_CSL_Intc1EventId evtId
)
{
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ISR, evtId, evtId, CSL_INTC1_ISR_RESET);
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ISR, evtId, evtId, CSL_INTC1_ISR_SET);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1Clear(
_CSL_Intc1EventId evtId
)
{
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ITR, evtId, evtId, CSL_INTC1_ITR_RESET);
}
/*------------------------------------------------------------------------*/
inline void _CSL_intc1Reset(
_CSL_Intc1EventId evtId
)
{
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->MIR, evtId, evtId, CSL_INTC1_MIR_MASK_DISABLE); /* disable */
CSL_FINSR(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ITR, evtId, evtId, CSL_INTC1_ITR_RESET); /* clear */
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1GlobalEnableState _CSL_intc1GlobalEnable(
void
)
{
_CSL_Intc1GlobalEnableState en;
en = (_CSL_Intc1GlobalEnableState)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ECR, INTC1_ECR_GLOBAL_MASK);
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ECR, INTC1_ECR_GLOBAL_MASK, 0);
return en;
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1GlobalEnableState _CSL_intc1GlobalDisable(
void
)
{
_CSL_Intc1GlobalEnableState en;
en = (_CSL_Intc1GlobalEnableState)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ECR, INTC1_ECR_GLOBAL_MASK);
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ECR, INTC1_ECR_GLOBAL_MASK, 0);
return en;
}
/*------------------------------------------------------------------------*/
inline _CSL_Intc1GlobalEnableState _CSL_intc1GlobalRestore(
_CSL_Intc1GlobalEnableState globalEn
)
{
_CSL_Intc1GlobalEnableState en;
en = (_CSL_Intc1GlobalEnableState)CSL_FEXT(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ECR, INTC1_ECR_GLOBAL_MASK);
CSL_FINS(((CSL_Intc1RegsOvly)CSL_INTC1_REGS)->ECR, INTC1_ECR_GLOBAL_MASK, globalEn);
return en;
}
/*------------------------------------------------------------------------*/
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?