TI中文支持网
TI专业的中文技术问题搜集分享网站

有关SRIO的Doorbell中断响应函数映射

您好!我在看论坛下载的K2_STK_DSP_v1.1.zip中的SRIO部分的代码,

其中 SRIO_Interrupts.c中的函数 interrupt void SRIO_Doorbell_ISR(),应该是Doorbell中断响应函数吧,

这个函数名是怎样被映射为Doorbell中断响应函数的呢?

根据我的理解,应该需要一个映射,注册这个函数的代码,可是没有找到。

请指教!

Allen35065:

同一个文件里

Uint32 uiLow_pri_Q_host_event_num;void SRIO_Interrupts_Init(void){ /* Disable Global host interrupts. */ gpCIC0_regs->GLOBAL_ENABLE_HINT_REG= 0;

uiLow_pri_Q_host_event_num= 18; /*map INTD1 low priority queue channel 0 interrupt event to CIC0 out 18*/ KeyStone_CIC_event_map(gpCIC0_regs, CSL_CIC0_QMSS_INTD_1_LOW_0, uiLow_pri_Q_host_event_num);

/* Enable Global host interrupts. */ gpCIC0_regs->GLOBAL_ENABLE_HINT_REG= 1;

/*map SRIO doorbell interrupts to INT4. map message descriptor accumulation low priority channel 0 interrupt to INT5*/ gpCGEM_regs->INTMUX1 = (CSL_C66X_COREPAC_SRIO_INTDST16_PLUS_N<<CSL_CGEM_INTMUX1_INTSEL4_SHIFT)| (CSL_C66X_COREPAC_CIC_OUT18<<CSL_CGEM_INTMUX1_INTSEL5_SHIFT);

//enable INT4, 5 CPU_interrupt_enable((1<<4)|(1<<5));

interrupt_cfg.interrupt_map = interrupt_map; interrupt_cfg.uiNumInterruptMap = sizeof(interrupt_map)/sizeof(SRIO_Interrupt_Map);

/*interrupt rate control is not used in this test*/ interrupt_cfg.interrupt_rate= NULL; interrupt_cfg.uiNumInterruptRateCfg= 0;

interrupt_cfg.doorbell_route_ctl= SRIO_DOORBELL_ROUTE_TO_DEDICATE_INT;

srio_cfg.interrupt_cfg = &interrupt_cfg;

}

guang ming wang:

回复 Allen35065:

谢谢您的回复!

还是不太明白,INT4是怎么触发 interrupt void SRIO_Doorbell_ISR()函数调用的,而不是触发别的函数。

Allen35065:

回复 guang ming wang:

在这个例子中,直接采用手动写中断向量表的方式,中断向量表定义在 SRIO_vectors.asm 文件内,在此文件中用汇编将SRIO_Doorbell_ISR绑定到了INT4上。

赞(0)
未经允许不得转载:TI中文支持网 » 有关SRIO的Doorbell中断响应函数映射
分享到: 更多 (0)