TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 使用notify模块,cfg里面配置了ProcSync_ALL,同时在工程的main函数里面,attachALL(8),然后就卡住了,不知道怎么解决,急。。。

ccs版本是5.2.0,ipc是1.23版本,使用c6678 IPC模块新加工程,cfg里面配置了,但是在调用attachALL的时候就会被卡住,不知道怎么解决

Nancy Wang:

当配置为Ipc.procSync = Ipc.ProcSync_ALL;时,在主函数中调用Ipc_start就可以了,在调用Ipc_attach前需要调用Ipc_start。
具体请参考以下链接的描述:
software-dl.ti.com/…/index_Foundational_Components.html

,

user5874834:

专家,我按照您的意思在main函数里面加了ipc_start(),然后再去连接core1,使用的是Ipc_attch(1),现在它的返回数值是-10,我查了一下sdk,没看懂这个返回数值的真正含义,我的启动流程是这样的:core0先起来,然后发核间中断给其他的core,所有的core都共用一个工程镜像,通过coreid来区别不同的核,我现在想做一个简单的notify核间通讯模型,core0发notify给core1,core1收到后提取参数,麻烦专家给点建议,卡了我一周了,没任何思路解决,谢谢

,

user5874834:

专家,麻烦指导一下,Ipc_start之后,调用ipc_attach(1)接口,无法连接core1,导致程序卡死

,

Nancy Wang:

请将您的相关代码贴出来看一下。

,

user5874834:

是cfg吗?由于公司信息安全规定,我只能大概说下流程,就是非常常规的notify多核工程,搜了一下其他人的帖子,都没出现问题,我的就是出现了问题,真在是搞不明白,您有什么好的建议吗?我可以都试验一下

,

user5874834:

您能给我一个你们很跑的例程吗?ccs5.2,ipc1.24能用的版本,谢谢

,

Nancy Wang:

附件有一个notify的例程,看一下。

4431.Notify.7z

这个帖子也一起看一下。

,

user5874834:

这个问题有没有其他的解决方法啊?

,

user5874834:

我问下这个ipc工程是不是需要其他的一些环境变量的设置啊?比如path环境变量之类的

,

user5874834:

TI专家,您好,我按照您给我的那个帖子里面的那个链接,把代码放到我的工程里面,发现在下面这个函数中的 while(Ipc_attach(sloverProc1)),卡住了,请问啥原因导致的,谢谢

Void tsk0_func(UArg arg0, UArg arg1)
{Int i = 1;Int status;status = Ipc_start();if (status < 0) {System_abort("Ipc_start failed\n");}
if(MultiProc_self()==masterProc){while(Ipc_attach(sloverProc1)){Task_sleep(1);}while(Ipc_attach(sloverProc2)){Task_sleep(1);}
status = Notify_registerEvent(sloverProc1, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);if (status < 0) {System_abort("Notify_registerEvent for sloverCore1 failed\n");}
status = Notify_registerEvent(sloverProc2, INTERRUPT_LINE, EVENTID,(Notify_FnNotifyCbck)cbFxn, NULL);if (status < 0) {System_abort("Notify_registerEvent for sloverCore2 failed \n");}

,

user5874834:

这句话后面的例子,麻烦帮忙看看啊,卡了很久,根本不知道啥原因,我这个时候,只有core0起来了,其他的core都是idle状态,ibl代码都没跑,
If you use synchronization of all processors (Ipc.procSync = Ipc.ProcSync_ALL) in the cfg-file, then the function

Ipc_attach() is not needed: it is automatically called in the function Ipc_start(). An example for this case can be the following:

#include <xdc/std.h>

,

user5874834:

ti专家,求助,还是没搞定

,

user5874834:

求助,ti专家,急

,

Nancy Wang:

先不加notify,测试一下可以吗?
inttsk0_func()
{int i;int status;status = Ipc_start();if (status < 0)return -1;for(i = 0; i < 2; i++){if(proc_id != i)// proc_id is 0 on core 0, and 1 on core 1{do {status = Ipc_attach(i);System_printf("Ipc_attach[] – > %d\n", i);Task_sleep(100);} while (status < 0);
}
}
return 0;

}
先跑一个简单的task试试,上面的变量根据你的需求改一下。

,

user5874834:

按照上面的做法,直接卡死在Ipc_start(),不能往下面跑程序啊

,

Nancy Wang:

我这边测试了一下,是可以的,把文件上传给你。测试的时候可以在ccs中将core0和core1建一个group,比较方便。

0334.notify_multicore.cfg

6320.notify_multicore.c

,

user5874834:

在ccs中将core0和core1建一个group,这个咋操作?我没有仿真器,

,

user5874834:

问下你这个是建立啥工程的啊?

,

user5874834:

ti专家,我搞了这么长时间都没搞定了,真不知道啥原因啊

,

Nancy Wang:

没有仿真器怎么调试的?

,

Nancy Wang:

看你之前的问题不是说,ipc_attach连不上,所以让你测试一下一个简单的程序看有没有问题。

,

user5874834:

完全靠打印来调试,非常痛苦

,

user5874834:

测试了一下,ipc-attach也连不上,头痛,使用的是Ipc & Io example模板创建的工程

,

user5874834:

刚试验结束,还是无法连接上,Ipc_attach(i)那里返回数值小于0,一直在while循环里面

,

user5874834:

急需要您们的帮助

赞(0)
未经允许不得转载:TI中文支持网 » C6678 使用notify模块,cfg里面配置了ProcSync_ALL,同时在工程的main函数里面,attachALL(8),然后就卡住了,不知道怎么解决,急。。。
分享到: 更多 (0)