CCS 5.5
C6657
最近在做C6657的中断有些茫然,请高手指点,项目需要用到SRIO 和 IPC 中断,我参考着网上的样例分别把这两个功能模块都调通了,现在需要把功能模块合并到一个项目工程中,它们都涉及到中断服务程序,我发现这两样例配置中断的方式各不相同
SRIO 样例中 用到 SRIO_vectors.asm 文件来配置中断向量表(看起来非常抽象,作为初学者的我压根看不懂)
而IPC样例用以下方式在.C文件中直接配置
event = 90; //中断事件号
vector = CSL_INTC_VECTID_6; //中断入口
isr = &IPC_ISR; //中断服务程序
hintc[vector] = CSL_intcOpen (&intcObj[vector], event, (CSL_IntcParam*)&vector , NULL);
if (hintc[vector] == NULL)
{
printf("Error: GEM-INTC Open failed\n");
return -1;
}
/* Register an call-back handler which is invoked when the event occurs. */
EventRecord.handler = isr;
EventRecord.arg = 0;
if (CSL_intcPlugEventHandler(hintc[vector],&EventRecord) != CSL_SOK)
{
printf("Error: GEM-INTC Plug event handler failed\n");
return -1;
}
/* clear the events. */
if (CSL_intcHwControl(hintc[vector],CSL_INTC_CMD_EVTCLEAR, NULL) != CSL_SOK)
{
printf("Error: GEM-INTC CSL_INTC_CMD_EVTCLEAR command failed\n");
return -1;
}
/* Enabling the events. */
if (CSL_intcHwControl(hintc[vector],CSL_INTC_CMD_EVTENABLE, NULL) != CSL_SOK)
{
printf("Error: GEM-INTC CSL_INTC_CMD_EVTENABLE command failed\n");
return -1;
}
看起来非常的明了
我尝试着以生搬硬套的方式把这两个中断配置合到一个工程里,但发现它们无法并存,能且只能一种中断可以成功
我想问一下,这两种配置有什么不一样,可以两个中断都用同一种配置方式吗?