c6678
ccs5.3
我将unified_ridl中的base 和 load的部分交给core0去做,即由core0 load一个dll,然后execute的部分由core2执行之前指定core0 load的dll。
execute的核心是execute_program(handle, prog_argc, (char**)(prog_argv.buf));,在不向dll中传参的情况下,其中用到的参数,handle、prog_handle、loaded_program等,我都如下定义,以便核间共享:
#pragma DATA_SECTION (handle, ".my_sec"); (my_sec定义在DDR3中)
DLOAD_HANDLE handle;
我打断点调试,发现core2在执行dll之前,handle、prog_handle、loaded_program等参数值都非空,都是正确的,但是再往下一步,即应该运行dll中的代码的时候,控制台没有dll中的输出,而此时core2的状态是No symbols are defined for....,即并没有指向dll的程序入口执行dll,但存放dll入口的函数指针loaded_program并不是空。
请问:
1.定义在DATA_SECTION中的数据是否被八个核真正共享?如果定义的是一个函数指针(存放dll的程序入口),能被真正共享么?
2. 是否每个核都必须各自执行base 、load才能execute dll,像我上述的这种,只将execute部分用到的参数做共享,一个核是否能够执行其他核load的dll?
谢谢!