gpt4 book ai didi

linux - 是否可以在 Linux 中进行内存到内存的 DMA 传输?如果是这样,什么函数调用 DMA 开始传输?

转载 作者:太空狗 更新时间:2023-10-29 12:25:01 27 4
gpt4 key购买 nike

<分区>

我和我的 friend 正在尝试为高级操作系统类的虚拟设备(读取:不是 PCI 或 USB)编写设备驱动程序。我们正在使用 Ubuntu 16.04。我们的任务是在我们的驱动程序中调用 IOCTL,并为其提供一个充满 RGB 值(整数数组)的源缓冲区、一个空的目标缓冲区和一个长度。我们将调用 DMA Controller 将源缓冲区的内容传输到目标缓冲区,然后对目标缓冲区中的值应用线性变换。

我们已经成功地完成了没有 DMA 的转换,并且我们已经成功地为我们的设备分配了一个 DMA channel 。我们遇到的问题是我们似乎无法在任何地方 找到描述使用 DMA 启动传输的函数。我们希望它在完成时引发中断(驱动程序不应该等待传输完成)。

为了明确我们的要求,我们只想知道在哪里可以找到描述此过程的函数定义。我们不要求代码或完成此任务的确切方法;我们只是想知道可以使用哪些函数和/或在哪个头文件中找到它们。我们已经浏览了 linux/dma-mapping.h 似乎令人作呕。我们也研究了 LDD3 一段时间,但它似乎彻底完成了设置 DMA 的过程,但没有提供太多关于应该使用哪些函数来实际开始 DMA 传输的信息。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com