各位专家、大神,
我的问题如题所述。写了一个程序,C6678作为server,PC作为client,用socket传递图像数据,C6678端在core0端运行正常,但是放到其他核运行全都死在了accept上,就是一直连不上。已经修改了之前的初始化配置,使得qmss_init();cppi_init()两个函数不管是哪个核,都运行。
请问真的是只有core0能运行socket连接吗???急等。
谢谢!
Adam Yao94020:
你要仔细看看核0的代码,看看有没有什么初始化函数是只在核0做的,
另外初始化系统的GEL文件是在哪个核调用的?
Feipng Li:
回复 Adam Yao94020:
你好,
不过我觉得这个跟GEL文件没有关系啊。反正初始化PHY那个步骤(SGMII嘛)都是通过了的。核0里面的程序,我觉得唯一有可能就是SRIO了,但是我去仔细的看,也没发现里面有用到什么东西啊。
其实调试的时候,我只是用仿真器连接了core0,里面并没加程序,然后把之前能在core0上运行的socket程序,加载到其他核,然后运行其他核的时候,就是卡死在了accept上。
我是记得有些外设,初始化必须在core0上做。但是具体使用的话,想socket是不是只能由core0来连就不了解了。
谢谢
Adam Yao94020:
回复 Feipng Li:
理论上外设的初始化和core没有绑定关系,如果core0的代码能初始化,而其他核不能初始化了,很有可能是虚实地址转换的时候对于其他核转换得不正确。
因为core0的虚实地址是一样的,而其他核的虚实地址不一样。