如上所述,dma引擎和dma控制器(专注于linux)有什么区别?DMA-Engine和DMA-Controller有什么区别?
什么时候linux dma引擎到位?这是一个特殊的设备还是始终是支持dma的所有外围设备的一部分?
当浏览linux源代码时,我发现了驱动程序ste_dma40.c。任何驱动程序如何使用此引擎?
2
A
回答
2
DMA - 直接内存访问。您的驱动程序可以读取或写入硬件内存,而不需要CPU参与其中(释放它来完成其他任务)。
DMA控制器 - 读写不能用魔法来完成。如果CPU不这样做,我们需要另一个硬件来完成。很多年前(在ISA/EISA时),在执行此操作的主板上使用共享HW是很常见的。近年来,每个硬件都有自己的DMA硬件机制。 但是在所有情况下,这个特定的硬件获取源地址和目标地址并传递数据。通常在完成时触发中断。
DMA引擎 - 现在在这里我不确定你的意思。我相信你可能会提及处理DMA的SW端。 由于所有存储器的SRC和DST必须在DMA操作过程中始终物理存在,DMA比通常的I \ O稍微复杂一些。如果将DST地址交换到磁盘,硬件将写入错误的地址,系统将崩溃。 DMA的这个和其他方面由驱动程序处理,代码段可能称为“DMA引擎”
*有关DMA引擎的另一种解释可能是固件(或硬件)处理硬件端的DMA硬件控制器。
相关问题
- 1. 有什么区别`和$(Bash中有什么区别?
- 2. ==和===有什么区别?
- 3. ==和===有什么区别?
- 4. 有什么区别? :和||
- 5. ==和===有什么区别?
- 6. '=='和'==='有什么区别?
- 7. `&`和`ref`有什么区别?
- 8. 有什么区别:。!和:r!?
- 9. | 0和~~有什么区别?
- 10. Appender和〜有什么区别?
- 11. xtype和别名有什么区别?
- 12. 有什么区别
- 13. 有什么区别
- 14. 有什么区别?
- 15. 有什么区别?
- 16. 有什么区别?
- 17. 有什么区别
- 18. 有什么区别?
- 19. 有什么区别?
- 20. 有什么区别
- 21. 有什么区别
- 22. Microsoft.AspNet.WebApi.OData和Microsoft.Data.OData和Microsoft.AspNet.OData有什么区别?
- 23. Viterbi CYK和Probabilistic CYK算法有什么区别,有什么区别吗?
- 24. Erlang的Ports和RPC有什么区别?
- 25. debug.write和Trace.write有什么区别?
- 26. LocalContainerEntityManagerFactoryBean和LocalEntityManagerFactoryBean有什么区别?
- 27. 数组和ArrayList有什么区别?
- 28. URI.escape和CGI.escape有什么区别?
- 29. rebar和rebar3有什么区别?或erlang.mk
- 30. 960.gs/Blueprint和LESS有什么区别?
1.您是在谈论硬件IP或Linux术语? 2.同样的问题。 3.它正在通过'DMAengine框架'使用。只需阅读* Documentation/dmaengine/*以获取更多信息。 – 0andriy