DMA和Cache同时使用

DMA and Cache using at the same time

当我们同时使用 DMA 和缓存时会发生什么?程序员在使用DMA和缓存时需要注意什么?

DMA 将读取和写入内存,而不是缓存。例如,DMA 控制器可以更新一些当前缓存的内存,并且更改不会反映在数据缓存中。或者您可能已经修改了与 DMA 正在访问的区域对应的缓存数据。
你必须把这件事告诉缓存控制器。它非常依赖架构
例如,这是使用 ARM 架构上的 CP15 协处理器的寄存器来控制的(参见 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/CIHDGCBH.html