ajourney
驱动牛犊
驱动牛犊
  • 注册日期2008-06-14
  • 最后登录2008-12-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2321回复:1

进行DMA时如何保证Cache和内存内容的一致性?

楼主#
更多 发布于:2008-11-04 22:48
因为程序使用虚拟地址,而且一般使用CACHED地址,所以虚拟地址中的内容与其物理地址上的内容不一定一致,所以在启动DMA传输之前一定要将该地址的CACHE刷新,即写入内存。请问在VC++中怎样进行CACHE刷新?用什么函数?操作系统用的是win2000
dongzhanyi
驱动牛犊
驱动牛犊
  • 注册日期2005-05-09
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-05-21 10:40
Re:进行DMA时如何保证Cache和内存内容的一致性?  
如果是NDIS架构,在Copy数据前用NdisMUpdateSharedMemory;如果是WDM架构,在Copy数据前用FlushAdapterBuffers
游客

返回顶部