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例子怎么在其他核上运行(c6678)



       我在使用C:\ti\mcsdk_2_01_02_05\examples\ndk\helloWorld这个例子的时候,下载在核0是可以运行,但是如果直接下载到核7就不行,其他核也不行。我调试发现是res_mgr_init_qmss函数初始化失败,这个函数里面的Qmss_insertMemoryRegion返回值是-135,表示描述器已经初始化了,我将关于qmss,cppi的函数都去掉,在核0上将这些都初始化。但是运行还是不行。  另外我将platform_get_coreid() == 0改为platform_get_coreid() == 7,其他核都不装载程序,程序下载到核7上,能运行,自己建立一个udp的客户端,udp能发送数据,但是和PC机建立不了连接,DSP接收不到数据,PC机也收不到数据。

  • NDK中默认是CORE0作为主控核,如果需要运行在其他核上,需要把驱动中相关CORE和L2 MEMORY 存储都修改了,您可以单步跟踪看看是哪一步初始化没有完成的,可以先从MAC层查起,看下Ethernet Switch statistic模块中有没有收发统计

  • 感谢您的回答,我在NDK的说明中找到下面一句话:

    Global.multiCoreStackRunMode lets you control which cores (on a C6000 multi-core processor) run the NDK stack. By default, only core 0 runs the NDK stack. Set this property only if you are an advanced user of the Inter-Processor Communication (IPC) component.  

    是说默认是在核0中运行,但是设置这个变量可以控制哪个核来运行,这个值默认是1.0,改为8.0后,重新编译,还是一样的,一样只能在核0上运行。您说的需要修改core核L2 memory是在哪里修改?怎么修改呢?能说的具体些吗?