上下文:
我现在想刷新我的一级数据缓存(目标:nxpp2020qoriqe500)。
使用“dcbf”指令时出现问题:
dcbf r3, r4 // with r3 and r4 defining the address of the DATA cache
问题:
我的问题是,我不知道给这个指令什么参数来访问数据缓存并刷新行?
我试着用一个“刚创建”变量:
int i = 0;
// let assume r3 = &i
dcbf 0, r3
isync
msync
我认为dcbf指令将通过&I参数到达数据缓存,但是当我通过探测进一步查看内存时,我看到缓存没有被刷新,也没有失效。
最佳答案
我的基本问题是给dcbf的地址不在缓存中。
参考手册上说:Perform reads to any 48 Kbyte region, THEN execute dcbf instruction
。
我现在正在搜索如何读取L1数据缓存