TI中文支持网
TI专业的中文技术问题搜集分享网站

FFTC 中 信号量 的问题

FFTC当中,经常出现下面这段代码,我不是很懂这段代码,可不可以解释下这段代码的含义,或者这段代码的目的。

while ((CSL_semAcquireDirect (FFTC_APP_SEM)) == 0);
Fftc_osalBeginMemAccess ((void *)&bIsCoreTestDone, sizeof(UInt32));
bIsCoreTestDone ++;
Fftc_osalEndMemAccess ((void *)&bIsCoreTestDone, sizeof(UInt32));
CSL_semReleaseSemaphore (FFTC_APP_SEM);
Fftc_osalLog ("Waiting for other cores to finish … \n");
do {
Fftc_osalBeginMemAccess ((void *)&bIsCoreTestDone, sizeof(UInt32));
Fftc_osalBeginMemAccess ((void *)&bIsSysInitDone, sizeof(UInt32));
} while (bIsCoreTestDone < bIsSysInitDone);

King Wang1:

我来猜一下,前面一段程序是为了防止多个核同时去操作bIsCoreTestDone 变量,这样可能会导致bIsCoreTestDone 变量少加的错误。

后面是一个同步过程,保证能读到bIsCoreTestDone 变量最新的信息,因为该变量可能被别的核改变。

赞(0)
未经允许不得转载:TI中文支持网 » FFTC 中 信号量 的问题
分享到: 更多 (0)