[英]Are there any DMA Linux kernel driver example with PCIe for FPGA?
我想在内核空间中编写一个驱动程序:
我需要一些例子来做类似的事情来指导我。 有谁知道我在哪里可以找到一些来源?
Connectal( http://www.connectal.org )是一个开源框架,使用户空间软件能够与Xilinx或Altera FPGA进行通信。 实际上,很少有这种通信涉及设备驱动程序。
Connectal支持通过内存映射硬件FIFO在软件和硬件之间传递消息,并且它通过来自FPGA的DMA支持共享内存。
设备驱动程序设计为独立于体系结构,但PCIe通信仅在x86中进行了测试。
Connectal还支持Zynq,因此您将遇到的一些问题(非窥探I / O)已经过调试。
Connectal的硬件目前在Bluespec Systems Verilog中实现,并使用Xilinx或Altera PCIe内核。
Linux设备驱动程序第3版是一个很好的资源。 它包含在PCIe设备中映射所需的所有信息,并创建用户空间程序可以使用的设备文件。 它还附带了示例源代码,可以从本书附带的网站上找到。 如果您计划进行大量内核模块开发,我建议您购买本书。
至于让FPGA执行DMA ...以下是我的一些假设:*你有硬件部分,因为你只提到需要内核驱动程序的帮助*你有一个PCIe PLB桥(也假设Virtex 5与PowerPC)*您的FPGA中还有一个映射到PCIe地址空间的硬件DMA控制器
我将创建一个具有IOCTL的设备驱动程序来设置DMA的源/目标地址。 这样,您的用户空间程序就可以执行IOCTL来编程FPGA中的DMA控制器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.