您好,
SRIO在核心0上功能正常,能够收到doorbell,现在由于项目要求,需要将doorbell调整到核心1上响应,根据数据手册对代码进行了修改,但核心1仍然收不到doorbell,不知道什么原因,请帮忙指点一下。谢谢
修改如下:
1.SRIO初始化时,根据数据手册将中断指向INTDST17
CSL_SRIO_DisableInterruptPacing (hSrio, 1);
CSL_SRIO_SetDoorbellRoute(hSrio, 0);
for(i = 0; i < 16; i++)
CSL_SRIO_RouteDoorbellInterrupts(hSrio, 0, i, 1);
2.注册中断响应函数时,修改成了CSL_GEM_INTDST_N_PLUS_16(不清楚这样做对不对,没看到具体的文档说明)
CpIntc_dispatchPlug(CSL_GEM_INTDST_N_PLUS_16, (CpIntc_FuncPtr)srio_db_isr, NULL, TRUE);
CpIntc_mapSysIntToHostInt(0, CSL_GEM_INTDST_N_PLUS_16, 8);
CpIntc_enableHostInt(0, 8);
CpIntc_enableSysInt(0, CSL_GEM_INTDST_N_PLUS_16);
Error_init(&eb);
event_id = CpIntc_getEventId(8);
Hwi_Params_init(&hwiParams);
hwiParams.arg = 8;
hwiParams.eventId = event_id;
hwiParams.enableInt = TRUE;
Hwi_create(6, &CpIntc_dispatch, &hwiParams, &eb);
3.FPGA端发送的doorbell_info为:0 和 1(核心0和核心1时,这个没有变)