This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6678 上使用CORE0与CORE1实现简单的IPC NOTIFY功能?

我在6678上用IPC NOTIFY功能实现简单的中断,有两个工程,CORE0与CORE1.由于源代码无法拷出来。大体情况如下:

CORE0发送NOTIFY到CORE1.CORE0只发送,CORE1只接收。

在CORE0中,除了主函数的初始化IPC_START()还在任务函数中Notify_sendEvent(1, INTERRUPT_LINE, EVENTID, seq, TRUE);

在CORE1中,没有定义任务函数,直接 在main函数外面直接使用了Void cbFxn(UInt16 procId, UInt16 lineId, UInt32 eventId, UArg arg, UInt32 payload)与

 主函数中使用了Notify_registerEvent(0,INTERRUPT_LINE, EVENTID, (Notify_FnNotifyCbck)cbFxn, NULL);

在运行过程中,发现不显示cbFxn定义的System_printf中的内容。

我的疑问时,怎样才能确定CORE0发送NOTIFY到CORE1中?是否进入了cbFxn函数?因为我试了下不能在cbFxn中设断点,还有是不是在CORE1中没有定义任务函数。所以不能进入到cbFxn中?

 

  • 主要代码大致如下:

    CORE0 :

    void tsk0_func(UArg arg0,Uarg arg1)

    { int payload=2222;

    int status;

    status=Notify_sentEvent(1,INTERRUPT_LIVE,EventID,payload,True);

     }

    int main(int argc ,char*argv[])

    {  int status;

    status=IPC_start();

    BIOS_start();

    return(0);

    }

    CORE1:

    int main(int argc ,char*argv[])

    {  int status;

    IPC_start();

    status=Notify_registerEvent(0,INTERRUPT_LINE,EVENTID,(Notify_FnNOTIFYcbk)cbFxn,NULL);

    BIOS_start();

    return(0);

    }

    void  

    Void cbFxn(UInt16 procId, UInt16 lineId, UInt32 eventId, UArg arg, UInt32 payload);
    {recProcId=ProcId;
    seq=payload;}