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.

关于C6678多核使用同一个.out的问题请教



大家好:

       现在我在调试的一个C6678的工程是这样的:整个工程产生一个.out文件,并将这个.out load进8个core,这样8个core就能共享同一个工程。我的问题是这样的:

      1.根据.cmd文件,这个工程的.data,.text等段都是放在L2 SRAM里面的,那么既然只有一个.out,而多个core都会去同时访问它的话,那么是否会产生冲突等问题?

      2.现在只有一个.out,一个.cmd,那么8个core需要执行的.text等段应该是相同的吧?也就是它们的可执行代码是相同的?但是如果8个core分别要执行不同的代码,该怎么办?我看了工程源文件它的大题框架是这样的:

       selfId = CSL_chipReadReg (CSL_CHIP_DNUM);//每个core读取自己的id号

       if (selfId == 0)

      {

      core 0需要执行的代码;

           }

     

     else
     if(1<=selfId<=6){

    core 1~6需要执行的代码;

       }

     else

  {  

  core 7需要执行的代码;

      }

   但想不明白的就是core 0~core 7都load的是同一个.out,那么它们的可执行字段以及程序都应该是相同的啊?用if语句它们执行的程序又不一样,这该怎么解释。还是我哪里理解错了?

   3.在源文件中,当编译后会生成一个.map文件,如果在源文件中的某个函数之前添加static字样,在.map文件中就不能看到该函数;如果去掉static重新编译,在.map里就能看到,这又是为什么?

    希望各位能够指点迷津。

    谢谢!