Linux系统中PCIE XDMA驱动调试常见问题

文章介绍了在Linux环境下,针对XilinxXDMA驱动调试遇到的问题,包括无法找到Xilinxxmda设备、源代码错误、命令未安装以及设备未被识别等。解决方案包括检查IP核设计、匹配正确的Linux内核版本、安装必要的命令和确认设备是否被系统识别。
摘要由CSDN通过智能技术生成

一、无法查到Xilinx xmda 设备

在Linux系统中,通过lspci 命令进行查询PCI设备时,只能查看到当前设备是memory controller而不是series contrell说明下载的例程不对,需按照所给例程设计IP核才能使得XDMA可被正常识别到.

Linux系统的XDMA驱动
配置XDMA IP核

二、Linux系统中XDMA驱动的安装

1.出现源代码有错误

说明当前Linux系统的版本与XDMA驱动所要求的版本不相符合.根据要求下载相对应的版本.
XDMA驱动要求的环境:

  • 系统架构: x86_64 Linux
  • 内核: 3.10+
  • RHEL/CentOS: 7.6, 7.7, 7.8, 7.9,8.1, 8.2
    Ubuntu: 16.04.5 LTS, 16.04.6 LTS 18.04.1 LTS, 18.04.2 LTS, 18.04.4LTS3, 18.04.5 LTS 20.04 LTS, 20.04.1 LT

以下是在20.04.1上进行的测试.镜像下载

2.相应命令未安装

如果出现sudo:make not found 则需要安装make,使用命令sudo apt-get install make.
如果出现sudo :gcc not found 则需要安装gcc ,使用命令sudo apt-get install gcc.

SSL error:02001002:system library:fopen:No such file or directory: …/crypto/bio/bss_file.c:69
SSL error:2006D080:BIO routines:BIO_new_file:no such file: …/crypto/bio/bss_file.c:76

若出现上述两个错误可忽略.

3.未能发现XDMA设备

如果在终端输入sudo ./load_drive.sh .出现Error: The Kernel module installed correctly, but no devices were recognized.说明你的设备未被识别到. 首先使用命令lspci`查看系统能否先检测到你的设备.

`qqqq@ubuntu:~/Downloads/dma_ip_drivers-master/XDMA/linux-kernel/tests$ lspci
00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
02:00.0 USB controller: VMware USB1.1 UHCI Controller
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

若能查询到设备,则继续查看你的设备的详细信息,使用命令查看你的设备的详细信息lspci -s 02:01.0 -v,此处我查询的是我列表中最后一个设备的详细.在进行查询时换成你的目标设备即可.

qqqq@ubuntu:~/Downloads/dma_ip_drivers-master/XDMA/linux-kernel/tests$ lspci -s 02:01.0 -v
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
DeviceName: Ethernet0
Subsystem: VMware PRO/1000 MT Single Port Adapter
Physical Slot: 33
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19
Memory at fd5c0000 (64-bit, non-prefetchable) [size=128K]
Memory at fdff0000 (64-bit, non-prefetchable) [size=64K]
I/O ports at 2000 [size=64]
Expansion ROM at fd500000 [virtual] [disabled] [size=64K]
Capabilities:
Kernel driver in use: e1000
Kernel modules: e1000

看你的设备名字是不是series controller,kernel driver 对应的位置是不是 xdma,若不是则按照前文一中步骤重新设计IP核.
如果你的设备名字是memory controller,说明板卡中下载的不是XDMA的运行程序或者没有正常启动。如果你的参考时钟设计不是100MHZ,可能会出现程序下载后,板卡不能正常启动XDMA的情况。第一次测试XDMA程序时最好按照前文一中步骤重新设计IP核.

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
xilliix pcie dma 驱动 (基于 xilnx xdma ip核 4.0 的WDF驱动) --- # XDMA Windows Driver This project is Xilinx's sample Windows driver for 'DMA/Bridge Subsystem for PCI Express v4.0' (XDMA) IP. *Please note that this driver and associated software are supplied to give a basic generic reference implementation only. Customers may have specific use-cases and/or requirements for which this driver is not suitable.* ### Dependencies * Target machine running Windows 7 or Windows 10 * Development machine running Windows 7 (or later) * Visual Studio 2015 (or later) installed on development machine * Windows Driver Kit (WDK) version 1703 (or later) installed on development machine ## Directory Structure ``` / |__ build/ - Generated directory containing build output binaries. |__ exe/ - Contains sample client application source code. | |__ simple_dma/ - Sample code for AXI-MM configured XDMA IP. | |__ streaming_dma/ - Sample code for AXI-ST configured XDMA IP. | |__ user_events/ - Sample code for access to user event interrupts. | |__ xdma_info/ - Utility application which prints out the XDMA core ip | | configuration. | |__ xdma_rw/ - Utility for reading/writing to/from xdma device nodes such | | as control, user, bypass, h2c_0, c2h_0 etc. | |__ xdma_test/ - Basic test application which performs H2C/C2H transfers on | all present channels. |__ inc/ - Contains public API header file for XDMA driver. |__ libxdma/ - Static kernel library for XDMA IP. |__ sys/ - Reference driver source code which uses libxdma |__ README.md - This file. |__ XDMA.sln - Visual Studio Solution. ```
xdma pcie驱动是一种用于处理PCI Express总线设备的驱动程序。PCI Express是一种用于在计算机系统进行高速数据传输的总线标准。xdma pcie驱动可用于控制和管理与PCI Express总线设备通信的过程。 xdma pcie驱动的调用过程一般包括以下步骤: 1. 程序初始化:首先,需要在程序进行xdma pcie驱动的初始化设置。这通常包括加载驱动程序、建立与设备的通信连接等操作。 2. 配置设备:在驱动初始化后,需要进行设备的配置。设置设备的寄存器值、断控制等参数,以确保设备在通信过程的正常工作。 3. 发送数据:当设备配置完成后,可以通过调用驱动程序提供的接口来发送数据。这通常需要指定设备的物理地址和要发送的数据内容。 4. 接收数据:类似地,通过调用驱动程序提供的接口,可以接收来自设备的数据。同样需要指定设备的物理地址和要接收的数据长度。 5. 数据处理:在接收到数据后,可以对其进行处理。例如,可以进行数据的解析、计算、存储等操作,以满足实际应用的需求。 6. 终止:在完成数据处理后,需要终止与设备的通信,并释放相关资源。这通常包括关闭驱动程序、断开与设备的连接等操作。 总之,xdma pcie驱动的调用过程涉及到驱动程序的初始化、设备的配置、数据的发送和接收、数据的处理以及终止等步骤。通过调用驱动程序提供的接口,可以实现与PCI Express设备的高速数据传输和交互。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值