首页 > 其他 > 详细

TI C66x DSP 系统events及其应用 - 4.2(Exception Combiner)

时间:2014-05-09 00:30:22      阅读:494      评论:0      收藏:0      [点我收藏+]

Exception Combiner允许系统设计者只选择一部分system events作为CPU EXCEP的输入。为此,Exception Combiner提供了四个exception mask寄存器(EXPMAKS[3:0])用于禁掉不想要CPU EXCEP处理的event。因为单个CPU仅有一个exception输入,所以需要四个mask寄存器协调工作combine 128个events为一个CPU EXCEP输入。

The default value of the EXPMASKx registers are all 1s. This means that all events are masked; therefore, no system events generate an exception unless you program this register.

Exception Combiner也提供了4个masked exception flag寄存器(MEXPFLAG[3:0]),与excepton mask寄存器结合使用。masked exception flag寄存器表示对event falg 寄存器(EVTFLAG[3:0])mask(通过exception mask寄存器实现)后的值,即除去了通过exception mask寄存器禁止掉的event,即使INTC收到了被禁掉的event,也不会在MEXPFLAG寄存器中置位,不被CPU处理

其中event falg 寄存器(EVTFLAG[3:0])将捕获INTC接收到的所有system events,这四个32bit寄存器将cover 124个system events(即4~127,其中0~3是INTC内部combine的event,将不作为INTC的输入,在INTC内部,event 0~3是Interrupt Selector的输入。与处理中断的Event Combiner不同,Exception Combiner不会对event 4~127分组,见corPac user guide Figure9-1可知),每个event映射到event falg 寄存器的1位。当INTC收到event后,相应为被置1,该寄存器是read-only的,只能通过EVTCLR[3:0]清除相应位。

Exception Combiner涉及三种寄存器:
event falg 寄存器(EVTFLAG[3:0]);
exception mask寄存器(EXPMAKS[3:0]);
masked exception flag寄存器(MEXPFLAG[3:0])

#define CORE_PAC_INTC_BASE_ADDR (SCorePacINTCRegs *) 0x01800000
/* INTC寄存器的起始地址是0x01800000 */
/*******************************************************************
* @brief SCorePacINTCRegs structure definition for CorePac Interrupt
* Controller registers.
*******************************************************************************/
typedef struct SCorePacINTCRegs

{
volatile u32 EVTFLAG[4]; /**< Event flag registers */
volatile u8 RSVD1[16];
volatile u32 EVTSET[4]; /**< Event set registers */
volatile u8 RSVD2[16];
volatile u32 EVTCLR[4]; /**< Event clear registers */
volatile u8 RSVD3[48];
volatile u32 EVTMASK[4]; /**< Event mask registers */
volatile u16 RSVD4[8];
volatile u32 MEVTFLAG[4]; /**< Masked Event flag registers */
volatile u8 RSVD5[16];
volatile u32 EXPMASK[4]; /**< Exception Mask registers */
volatile u8 RSVD6[16];
volatile u32 MEXPFLAG[4]; /**< Masked Exception Flag registers */
volatile u8 RSVD7[20];
volatile u32 INTMUX[3]; /**< Interrupt mux registers: INTMUX1, INTMUX2,INTMUX3 */
volatile u8 RSVD8[48];
volatile u32 AEGMUX[2]; /**< Advanced event generator mux registers */
volatile u8 RSVD9[56];
volatile u32 INTXSTAT; /**< Interrupt exception status register */
volatile u32 INTXCLR; /**< Interrupt exception clear register */
volatile u32 INTDMASK; /**< Dropped interrupt mask register */
}SCorePacINTCRegs;

TI C66x DSP 系统events及其应用 - 4.2(Exception Combiner),布布扣,bubuko.com

TI C66x DSP 系统events及其应用 - 4.2(Exception Combiner)

原文:http://blog.csdn.net/yiyeguzhou100/article/details/25305061

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!