数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2052|回复: 0

[ARM] Xilinx XDMA数据传输xdma驱动代码分析

[复制链接]
发表于 2023-11-17 10:18:19 | 显示全部楼层 |阅读模式
Xilinx官方的XDMA驱动的目录结构大致如上图所示,大致就是:xdma(驱动代码)tools(测试工具)、tests(自动化测试脚本)include(对外头文件)
今天重点分析驱动的代码部分,也会简单的介绍一些测试文件代码的基本用法。
1.1  tests/tools
tools中的文件就是用于测试驱动mem读写、寄存器读写、等的工具。 tests中的文件 就是自动化运行脚本,分为两种测试方法,第一种是mem mapped 方式,第二种事streamming的方式,两种模式的区别在于DMA以及FPGA的传输方式不同。
1.2  xdma
xdma就是驱动部分的代码,我们先看一下驱动安装成功后,所生成的设备文件,然后对应设备文件去看驱动代码每部分的功能和控制逻辑。
xdma_userxdma_control调用了同一个设备初始化接口,但是是两个不同的设备, 上层接口传递的参数有差异。可以从代码里查看到。他们映射的bar空间是不一样的。
control映射的是配置寄存器的bar空间,user映射的给用户预留的bar空间。
接下来就是cdev_xvc.cxdma_xvc设备了, 说实话,目前我没怎么用过这个设备,不过大体看代码逻辑,可能跟fpgaxvc协议有关。Xilinx虚拟线缆(XVC) 是一种基于TCP/IP的协议,其不仅可发挥类似于JTAG线缆的作用,而且还可提供一种无需使用物理线缆便可访问和调试FPGASoC设计的方法。Xilinx虚拟线缆 (XVC)
2.4
cdev_events.cxdma_events_x设备:这个文件具体的含义就是处于处理事件函数:也就是中断处理。这个设备的读操作是阻塞的,当读到有fpga有中断过来,那么就会返回应用层,用纸用户层代码就行下一步中断来了处理的逻辑。
char_events_read



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +30 收起 理由
家睦 + 30

查看全部打赏

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-30 04:31 , Processed in 0.124800 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表