当我们同时使用 DMA 和缓存时会发生什么?程序员在使用DMA和Cache时需要注意哪些?
最佳答案
DMA 将读取和写入内存,而不是缓存。例如,DMA Controller 可以更新当前缓存的某些内存,并且更改不会反射(reflect)在数据缓存中。或者您可能修改了 DMA 访问的区域对应的缓存数据。
您必须将此情况告知缓存 Controller 。它非常依赖于架构
例如,这是使用 ARM 架构上的 CP15 协处理器的寄存器进行控制的(请参阅 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/CIHDGCBH.html)
关于c - DMA和Cache同时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27854287/