大家好:
因为FFTC_Multicore_exampleProject工程中所有的代码都在multicore.c文件中,如果加入自己算法的话,觉得很庞杂,所以就把一些函数按照功能分别放入单独的文件中,发现下面的这些变量其他文件访问出错,所以就把mulitcore.c文件中如下代码
/* Used to synchronize System Init on all cores */
#pragma DATA_SECTION (bIsSysInitDone, ".fftc");
static UInt32 bIsSysInitDone = 0;
/* Used to synchronize System De-Init on all cores */
#pragma DATA_SECTION (bIsCoreExampleDone, ".fftc");
static UInt32 bIsCoreExampleDone = 0;
/* Used to synchronize driver configuration on all cores */
#pragma DATA_SECTION (bIsCoreInitDone, ".fftc");
static UInt32 bIsCoreInitDone = 0;
改成了
UInt32 bIsSysInitDone = 0;
UInt32 bIsCoreExampleDone = 0;
UInt32 bIsCoreInitDone = 0;
发现程序运行不对,bIsSysInitDone 不能同步(core0中已经是1了,但是core1中还是0)这是什么原因呢?
我自己理解#pragma DATA_SECTION (bIsCoreExampleDone, ".fftc");是不是在共享存储器中分配的变量呢?我修改后的变量对于每个核来说是全局变量但是核与核之间不能同步,请问这样理解对吗,要怎么定义才能同步呢?