DMA操作最终会分配缓冲区, 并将总线地址传递给设备。一个可移植的驱动程序要求对所有体系架构都能安全而正确地执行DMA操作,编写这样一个驱动程序的难度超出了一般人的想象。不同的系统对处理缓存一致性上有不同的方法;如果不能正确处理该问题,驱动程序会引起内存冲突 。一些系统拥有复杂的总线硬件,使得DMA任务或变得简单,或变得困难。并且不是所有的系统都能对全部的内存执行DMA。幸运的是,内和提供了一个与总线——体系架构无关的DMA层,它会隐藏大多数问题。强烈建议编写驱动程序时,为DMA操作使用该层。
通用DMA层
最新推荐文章于 2024-04-11 21:40:53 发布