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 functionIpc_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:
急需要您们的帮助