您好,
我们是自己的板子上进行多核烧录,我们在norflash的0地址烧录了二次boot程序,在655360地址烧录了应用程序。时钟和DDR的初始化在二次boot程序里做的,然后二次boot程序把应用程序搬进核0,核0通过dma搬移到其他核,然后ipc中断通知。
八核都起来后,我们首先让核0做一部分数据处理,其他核进入多核同步里,等待核0完成。然后再继续下一步。但是现在烧录进入以后,程序卡在多核同步里了。
我们的多核同步就是基于ipc例程更改的,现在不知道为啥会卡。我们是通过往ddr某个地址写数来判断的,程序运行到多核同步前写个1,运行完写个2之类的。但是现在到1没到2。请教各位大神!
user4962317:
另外我们的程序如果直接load到板子里跑都是没问题的,所以现在也实在不知道为啥…
user4962317:
回复 user4962317:
再补充一下,我直接烧ipc例程,也是过不了多核通信。
Shine:
回复 user4962317:
请问您是通过notify event来同步到吗?如果是的话,建议直接写IPCGR来同步的。请参考下面的帖子。
e2e.ti.com/…/510108
user4962317:
回复 Shine:
您好,您的链接打开是个错误的网页,能否再发一次?
Shine:
回复 user4962317:
我这边可以啊,直接点链接进去。
e2e.ti.com/…/510108
user4962317:
回复 Shine:
您好,
我仔细看了您推荐看的帖子,其实我的问题和帖子里的问题是一样的,都是烧录进去以后多核同步失败,但是我们的问题确实都没有得到解决。
帖子里说notify send event函数要在ipc start以后才能使用,我们的确是在ipc start以后才使用的,我发现我的notifu send event是可以过的,返回的status是0,表示Notify S SUCCESS,但是接下来卡在了Semaphore pend函数里,也就是说虽然我发送了中断,但是各个核并没有收到。
另外我烧录程序时,确实是通过直接写ipc寄存器来实现的,这个肯定是成功了,因为八核都起来了,只是在之后的多核通信里卡住了。
我现在想直接用csl函数来替代notify send event,论坛里提供了一个IPC EXAMLE的压缩包例程,是使用csl来做ipc的,但是这个例程我在板子上无法正确运行,也是发不出中断。请问您能再提供一个例子来参考吗?谢谢!
TI中文支持网