大家好:
现在我在调试的一个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里就能看到,这又是为什么?
希望各位能够指点迷津。
谢谢!