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.

NDK helloWorld

大家好!

ccs5.3 & 6678

我在运行NDK的helloWorld例程。我在core0单核上运行时一切正常。我修改了例程中的如下一段代码:

    if (platform_get_coreid() == 1)
    {
        qmss_cfg.master_core        = 1;
    }
    else
    {
        qmss_cfg.master_core        = 0;
    }
    qmss_cfg.max_num_desc       = MAX_NUM_DESC;
    qmss_cfg.desc_size          = MAX_DESC_SIZE;
    qmss_cfg.mem_region         = Qmss_MemRegion_MEMORY_REGION0;
    if (res_mgr_init_qmss (&qmss_cfg) != 0)
    {
        platform_write ("Failed to initialize the QMSS subsystem \n");
        goto main_exit;
    }
    else
    {
     platform_write ("QMSS successfully initialized \n");
    }

    /* Initialize CPPI */
    if (platform_get_coreid() == 1)
    {
        cppi_cfg.master_core        = 1;
    }
    else
    {
        cppi_cfg.master_core        = 0;
    }
    cppi_cfg.dma_num            = Cppi_CpDma_PASS_CPDMA;
    cppi_cfg.num_tx_queues      = NUM_PA_TX_QUEUES;
    cppi_cfg.num_rx_channels    = NUM_PA_RX_CHANNELS;
    if (res_mgr_init_cppi (&cppi_cfg) != 0)
    {
        platform_write ("Failed to initialize CPPI subsystem \n");
        goto main_exit;
    }
    else
    {
     platform_write ("CPPI successfully initialized \n");
    }

我将原始判定core0为主核,改为判定core1为主核,从而使core1在跑的时候可以正常进行qmss和cppi的配置。然后我在core1单核上运行。PC端得到的是超时:

于是我看了PC端的程序,将其中定义的超时时间从1秒 改为更大的值,然后重新编译。

#define TIMEOUT         1  /* seconds */ 

但是我都改到10秒20秒了,依旧超时。我也试了其他非0核,是相同的情况。

我想请问这是什么情况,为什么非0核总是超时而无法正常通信呢?

谢谢!

  • check一下报文接收中断方式,有可能是接收报文放到一个硬件队列中产生中断通知core,但是例程中使用的硬件队列产生的事件只路由到core0,所以check一下中断配置代码,这一块修改使用路由到core1的硬件队列,你先查一下代码很有可能是类似的问题。

  • 请问楼主,这个问题最终解决了吗?怎么解决的呢?

  • 请问楼主最后怎么解决的这个问题,谢谢!

x 出现错误。请重试或与管理员联系。