各位好,目前在下碰到了这样一个问题:
将NDK的Hello world例程与Notify融合出现了问题:
问题描述:核0作为UDP收发程序的核,当收到UDP数据后,进入core0enter(pBuf);
void core0enter(char *data)
{
Int status;
Int length = 0;
Int i = 1;
length = strlen(data);
memcpy(trans_data.data,data,sizeof(char)*length);
trans_data.data_len = length;
Cache_wbAll();
while(i < NUMLOOPS)
{
status = Notify_sendEvent(1, INTERRUPT_LINE, EVENTID, i,TRUE);
if (status < 0) {
continue;
}
i++;
}
Semaphore_pend(semHandle,BIOS_WAIT_FOREVER);
}
然后核0通过Notify_sendEvent向核1发送EVENTID号事件,来触发核1进入cbFxn函数中,但是不知道为什么单步运行过这个函数,并不能触发核1,而这个函数的返回值为0,表示操作成功了的。但是就是不能触发,请各位前辈指点迷津,不甚感激。
EVENTID 是11;
注册函数
else if(MultiProc_self() == 1)
{
status = Notify_registerEvent(0,INTERRUPT_LINE,EVENTID,(Notify_FnNotifyCbck)cbFxn,NULL);
}
注:CCS版本:5.5,MCSDK版本:2.1.26,bios版本:6.35.4.50;单独运行Notify例程是能触发的。