嵌入式开发者社区

标题: 请教一些6678中库函数的用法 [打印本页]

作者: IRONMAN    时间: 2016-8-7 10:34
标题: 请教一些6678中库函数的用法
WritebackCache((void *)uipDst, uiByteCount);
InvalidCache((void *)uipSrc, uiByteCount);
CSL_XMC_invalidatePrefetchBuffer();
请问这三种函数实现的具体的功能是什么?


作者: 希望缄默    时间: 2016-8-7 18:20
从缓存写回低级内存
使指定区域缓存无效
使预取缓冲区无效
作者: IRONMAN    时间: 2016-8-8 11:04
希望缄默 发表于 2016-8-7 18:20
从缓存写回低级内存
使指定区域缓存无效
使预取缓冲区无效

对于WritebackCache((void *)uipDst, uiByteCount);这个的意思是把缓存的内容写入uipDst指定的首地址长度为uiByteCount(单位是byte)的内存空间?那么不用指定缓存的哪一块区域吗?
InvalidCache((void *)uipSrc, uiByteCount);说是使指定区域的缓存无效意思是让这一片区域退化成普通的内存?还是清除这一片的区域?

作者: 希望缄默    时间: 2016-8-9 20:56
IRONMAN 发表于 2016-8-8 11:04
对于WritebackCache((void *)uipDst, uiByteCount);这个的意思是把缓存的内容写入uipDst指定的首地址长度 ...

是 不用
标记指定内存对应缓存区域无效
作者: IRONMAN    时间: 2016-8-21 18:52
这几天看了大量关于QMSS的代码,里面经常会用到WritebackCache((void *)uipDst, uiByteCount);
InvalidCache((void *)uipSrc, uiByteCount);这两个函数。
WritebackCache((void *)uipDst, uiByteCount);这个函数从字面上理解是把高速缓存的内容写回到指定的低级缓存里,而这个内容在低级和高级缓存里都有是吗?然后InvalidCache((void *)uipSrc, uiByteCount);这个函数是让指定区间的高速缓存无效,也就是说原来指定区间在对应的高速缓存的内容没有了,我这样理解对吗?
作者: 希望缄默    时间: 2016-8-22 21:53
IRONMAN 发表于 2016-8-8 11:04
对于WritebackCache((void *)uipDst, uiByteCount);这个的意思是把缓存的内容写入uipDst指定的首地址长度 ...

不用
都不是 仅仅将这块内存地址所对应的缓存区域标记为无效
作者: IRONMAN    时间: 2016-8-24 10:58
终于明白啦  恍然大悟啊  瞬间就懂了




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4