我已经阅读了Linux设备驱动程序LDD3,DMA-API.txt,DMA-HOWTO.txt也查看了drivers / dma / dmatest.c但是我无法弄清楚你是如何启动的dma转移。 关于映射内存的所有讨论,但没有关于如何启动事务的讨论。 PCI示例驱动程序具有传输功能,但它使用“特定”DMA操作,我试图找出一个不依赖于硬件的更通用/可移植的实现
我想尝试制作像
这样的东西我只是读/写我映射的内存吗?如何注册回调处理程序?
编辑: 为了提供更多细节,我正在开发一个ARM平台。
答案 0 :(得分:1)
也许Xilinx的一个例子可以提供帮助: http://www.wiki.xilinx.com/Zynq+Linux+pl330+DMA
来自三星的驱动程序(已经包含在linux内核中): http://lxr.free-electrons.com/source/drivers/dma/pl330.c