常见用法:一般在对内存进行操作时使用,通常使用两次。详见下面的例子
static inline void WritebackCache(void * blockPtr, Uint32 byteCnt)
{
if(byteCnt>0xFFFF*4)
byteCnt= 0xFFFF*4;
if((Uint32)blockPtr>=0x0C000000&&(Uint32)blockPtr<0x0D000000) //SL2
{
CACHE_wbL1d((void *)blockPtr, byteCnt, CACHE_WAIT);
}
else if((Uint32)blockPtr>=0x10000000) //DDR or other cores
{
CACHE_wbL2((void *)blockPtr, byteCnt, CACHE_WAIT);
}
_mfence();
_mfence();
}
作用:
void _mfence(); MFENCE Stall CPU while memory system is bus
主要就是让CPU等待内存操作完成。
参考资料:《TMS320C6000 Optimizing Compiler v8.3.x User's Guide》
说明:有关C6678编程中的常用的内联函数请参考《TMS320C6000 Optimizing Compiler v8.3.x User's Guide》Chapter8