This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

对于6678 NDK例程的疑问



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。

  • 这是软件设计core0为master core,master core负责cppi及qmss的初始化,当然你可以修改代码任意core都可以作为master core进行资源初始化。

  • /* 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 Client
    PASS 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 entries
    Verify_Init: Expected 0 entry count for Queue number = 913, found 1 entries
    Registration of the EMAC Successful, waiting for link up ..
    Network Added: If-1:192.168.2.100
    Service Status: Telnet : Enabled : : 000
    Service Status: HTTP : Enabled : : 000

    这个我觉得应该就表明DSP正确的运行了例程,但是我用电脑端的echoc进行测试的时候,发现电脑端总是显示echoc:failed connect(100060)的错误,应该就是说没有和DSP端建立socket连接。这是什么原因呢?是不是程序还有其他地方需要修改的地方。因为,我把相同的程序跑在core 0 上就没有任何问题。