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.

多核之间共享变量



大家好:

    因为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");是不是在共享存储器中分配的变量呢?我修改后的变量对于每个核来说是全局变量但是核与核之间不能同步,请问这样理解对吗,要怎么定义才能同步呢?