6678 MCSDK中的ndk例程client中,为何程序必需要运行在core0上面。
我看了代码,有如下:
/* Initialize QMSS */
if (platform_get_coreid() == 0)
{
qmss_cfg.master_core = 1;
}
else
{
qmss_cfg.master_core = 0;
}
………………
/* Initialize CPPI */
if (platform_get_coreid() == 0)
{
cppi_cfg.master_core = 1;
}
else
{
cppi_cfg.master_core = 0;
}
为何必须这样初始化cppi和qmss。
Andy Yin1:
这是软件设计core0为master core,master core负责cppi及qmss的初始化,当然你可以修改代码任意core都可以作为master core进行资源初始化。
Yangjie Xie:
回复 Andy Yin1:
/* Initialize QMSS */ if (platform_get_coreid() == 0) { qmss_cfg.master_core = 1; } else { qmss_cfg.master_core = 1; }
…….
/* Initialize CPPI */
if (platform_get_coreid() == 0) { cppi_cfg.master_core = 1; } else {qmss_cfg.master_core = 1; }
我尝试了一下,不论哪一个核,qmss_cfg.master_core、qmss_cfg.master_core均设置为1,最后程序跑在core 1 上,console窗口可以打印出如下信息
[C66xx_1] QMSS successfully initialized CPPI successfully initialized PA successfully initialized
TCP/IP Stack Example ClientPASS successfully initialized Ethernet subsystem successfully initialized Ethernet eventId : 48 and vectId (Interrupt) : 7 Verify_Init: Expected 0 entry count for Queue number = 912, found 1 entriesVerify_Init: Expected 0 entry count for Queue number = 913, found 1 entriesRegistration of the EMAC Successful, waiting for link up ..Network Added: If-1:192.168.2.100Service Status: Telnet : Enabled : : 000Service Status: HTTP : Enabled : : 000
这个我觉得应该就表明DSP正确的运行了例程,但是我用电脑端的echoc进行测试的时候,发现电脑端总是显示echoc:failed connect(100060)的错误,应该就是说没有和DSP端建立socket连接。这是什么原因呢?是不是程序还有其他地方需要修改的地方。因为,我把相同的程序跑在core 0 上就没有任何问题。