【PCIE】DMA读写速度测试----Linux系统

【PCIE】DMA读写速度测试----Linux系统

前言

众所周知,没玩过PCIe就不能说自己是FPGA工程师!哈哈哈哈哈哈,这是我在某位CSDN大佬那里学到的。所以我马上开始了PCIE的研究,本文章仅仅是在学习过程当中的一些经验,拿出来分享给大家。本次实验所用FPGA为国产品牌(紫光同创),所用型号为PG2L100H,实验包括Windows PCIE驱动加载以及读写测试。另外跟大家推荐一本PCIE的实体书,《PCI Express体系结构导读》王齐前辈的著作,目前我也在学习。

一、PCI Express DMA是什么?

PCI设备与存储器直接进行数据交换的过程也被称为DMA。与其他总线的DMA过程类似,PCI设备进行DMA操作时,需要获得数据传送的目的地址和传送大小。支持DMA传递的PCI设备可以在其BAR空间中设置两个寄存器,分别保存这个目标地址和传送大小。这两个寄存器也是PCI设备DMA控制器的组成部件。
值得注意的是,PCI设备进行DMA操作时,使用的目的地址是PCI总线域的物理地址,而不是存储器域的物理地址,因为PCI设备并不能识别存储器域的物理地址,而仅能识别PCI总线域的物理地址。简单来说cpu通过操控pci的bar空间,通过映射来实现对RAM等的读写操作。

二、使用步骤

1.烧写并固化

程序结构如下,右侧为消耗资源。
在这里插入图片描述
固化完成之后断电,切换到linux系统。(注意程序也要打包到Linux!!!)
请添加图片描述

2.驱动加载

在终端打开driver,make编译完成,无误如下。
请添加图片描述
输入insmod pango_pci_driver.ko,加载相应驱动,完成即可打开QT软件开始测试。另外可执行lspci查看对应设备号一确定设备是否link。
请添加图片描述
QT需要root权限启动
请添加图片描述

3.读写速度测试

在QT打开位于\PCIe_test\PC\pciespeed的程序
请添加图片描述
点击左下角run运行程序
请添加图片描述
即可进行读写速度测试
请添加图片描述
请添加图片描述
本次使用PG2L100H配合AXP100开发板完成,PCIe为Gen2 x2.PCIe驱动上一篇文章已做过演示详情请前往(https://blog.csdn.net/qq_45892894/article/details/134460896)了解,另外可提供QT安装资料,QT源码,PDS程序详情请私信了解。
请添加图片描述
请添加图片描述

PCIE-DMA是一种基于PCIe接口的直接内存访问技术,能够实现高速数据传输。在我的学习笔记中,我详细记录了与PCIE-DMA相关的知识和学习心得。 首先,我了解到PCIE-DMA技术的基本原理和作用。PCIE-DMA可以通过PCIe总线直接访问系统内存中的数据,而不需要过多的CPU干预,提高数据传输的速度和效率。这种技术在需要大量数据传输的场景下非常有效,比如高性能计算、数据采集等。 其次,我深入学习了PCIE-DMA的工作原理。PCIE-DMA的核心是DMA控制器,它负责管理和控制数据传输的流程。当设备需要读写内存中的数据时,它通过DMA控制器发送请求,然后DMA控制器生成一个事务,将数据直接传输到或从内存中。这样就大大减少了CPU的参与,提高了数据传输的效率。 另外,我还学习了PCIE-DMA的配置和编程方法。PCIE-DMA的配置主要包括硬件配置和软件配置两个部分。硬件配置通常涉及到DMA控制器和PCIe接口的初始化和配置,软件配置则需要编写驱动程序来驱动DMA控制器和处理数据传输过程中的事件和异常。这部分内容对于我来说还比较新颖,需要更多的实践和实践。 最后,我总结了PCIE-DMA的应用场景和发展前景。PCIE-DMA在高性能计算、数据采集等领域具有广阔的应用前景。随着数据量的不断增加和传输速度的要求越来越高,PCIE-DMA技术的需求也将越来越大。因此,对于我来说,学习掌握PCIE-DMA技术非常有价值。 通过学习和记录PCIE-DMA的相关知识和经验,我对这项技术有了更深入的理解和掌握。希望将来能通过应用PCIE-DMA技术解决实际问题,为科研和工程项目的顺利进行做出贡献。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值