我用的芯片是c6678cyp yb20-3azde79多核,cpu用的是FSL8315,板子上面有2颗DSP
采用的是自己设计的板子,使用的仿真器型号为xds100v2 usb emulator
ccs的版本为CCS5.4.0.00091_win32 mcsdk版本为bios_mcsdk_02_01_02_06_setupwin32.exe
硬件环境是这样的:dsp的GPIO8-15管脚和fpga直连,FPGA实现看门狗的功能,每个DSP有8个看门狗,在看门狗超时的时候,会给对应的GPIO发送一个中断信号,下降沿触发,但是代码中虽然实现了中断的功能,但是中断处理函数没有被执行,整个DSP就死掉了,想请教的问题是:
1.麻烦帮忙看一下,这样实现中断,代码是否正确,是否还缺代码,谢谢。下面是代码
ddspGpioInit(DNUM);//dnum代表核,数值为0-7
/* 初始化硬件中断参数 */
Hwi_Params_init(&hwiParams);
uprintf("core%d is Hwi_Params_init()\n",DNUM);
/* 创建硬件中断 */
hwiParams.eventId = DNUM+82;
hwiHandle = Hwi_create(DNUM+4,WatchdogIsrHandler,&hwiParams,NULL);
void ddspGpioInit(DNUM)
{
/*初始化GPIO*/
gpioInit();
/*设置GPIO8为输入模式*/
gpioSetDirection(DNUM+8,GPIO_IN);
/*设置GPIO8为下降沿触发中断*/
gpioSetFallingEdgeInterrupt(DNUM+8);
/*使能GPIO8全局中的*/
gpioEnableGlobalInterrupt();
//gpioDisableGlobalInterrupt();
uprintf("core%d is ddspGpioInit()\n",DNUM);
/* 清理gpio中断 */
clearHostInt();
}
void WatchdogIsrHandler(){
uprintf("core is watchdog interrupt handler\n");
clearHostInt();
}