在TI提供的实例中仅看到信号量做核内线程间同步的,请问可以做核间同步吗?有相关的例子吗?
非常感谢
James Li2:
如果是keystone系列芯片,有专门的硬件单元叫hardware semaphore可以用作核间同步
Muhua Chen:
回复 James Li2:
James Li2, 您好
我正在学习硬件信号量的使用,在看一些例子 , 比较着急
我在FFTC_Multicore的例子中看到以下代码
while ((CSL_semAcquireDirect (FFTC_APP_SEM)) == 0); Fftc_osalBeginMemAccess ((void *)&bIsSysInitDone, sizeof(UInt32)); bIsSysInitDone ++; Fftc_osalEndMemAccess ((void *)&bIsSysInitDone, sizeof(UInt32)); CSL_semReleaseSemaphore (FFTC_APP_SEM);
我把头文件加上,在自己的工程中加入以下两句:
while ((CSL_semAcquireDirect (FFTC_APP_SEM)) == 0);
CSL_semReleaseSemaphore (FFTC_APP_SEM);
发现不能达到多核互斥的效果。
请问还应该配置些什么?
非常感谢!
James Li2:
回复 Muhua Chen:
检查一下FFTC_APP_SEM定义成几
while ((CSL_semAcquireDirect (FFTC_APP_SEM)) == 0); //获取信号量
需要互斥的操作放在这里 !!!
CSL_semReleaseSemaphore (FFTC_APP_SEM); // 释放信号量
Muhua Chen:
回复 James Li2:
问题解决了 非常感谢
Muhua Chen:
回复 James Li2:
问题解决了 非常感谢