TI中文支持网
TI专业的中文技术问题咨询交流网站

c6678 ipc notify & sharedRegion 错误

TI工程师:您好!

  我的工程用到了notify & sharedRegion

  程序运行过程中出现过下列的错误,

1。a_invArgument:  invalid argument supplied

2. a_addroutRange: address is out of region id's range(只配置了一个region, 配置的大小>使用的空间大小)

3。a_notRegistered: nofify instance not yet registered for the processor(程序已注册过)

请问这几个错误有可能是什么原因造成的。在单独测试计算模块时,没有问题,但集成调试过程中,却出现了这几个问题。

Nancy Wang:

请帖出版本号以及附件上传相关代码及cfg配置文件。 第一个报错具体出现的位置,请详细说明。

user6307690:

回复 Nancy Wang:

这是其中一个。
在我的工程中,使用ipc notify实现core0 和其余核之间进行一个简单的数据传递,core 0 向其它核发送notify, 其它核运行一个计算后,发送notify给core0. 后续还要执行类似的多核 同步的计算。程序开始运行了 IPC_start(),sendEvent_register()。前几次运行均正常。但运行几次后,会运行错误,提示 notify instance not yet registered for the processor.

请问这有可能是什么原因造成的。

void cbFxn(Uint16 procId, Uint16 lineId, Uint32 eventId, UArg arg, Uint32 payload)
{recvProcId = procId;inBuf_srptr=(SharedRegion_SRPTER)payload;
if(procId != masterProc){recv_nums++;if(recv_nums == 7){recv_nums = 0;Semaphore_post(semHandle);}}elseSemphore_post(semHandle);

}

注册代码INTERRUPT_LINE= 0;EVENTID= 10

if (MultiProc_self() == masterProc){status = Notify_registerEvent(sloverProc1, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);status = Notify_registerEvent(sloverProc2, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);status = Notify_registerEvent(sloverProc3, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);status = Notify_registerEvent(sloverProc4, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);status = Notify_registerEvent(sloverProc5, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);status = Notify_registerEvent(sloverProc6, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);status = Notify_registerEvent(sloverProc7, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);}else{// 从核完成事件注册status = Notify_registerEvent(masterProc, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);}

Nancy Wang:

回复 user6307690:

把.cfg配置文件也上传一下。

赞(0)
未经允许不得转载:TI中文支持网 » c6678 ipc notify & sharedRegion 错误
分享到: 更多 (0)