顺手把之前的Riffa也发上来,供有需要的童鞋学习 -.-
实验环境:win10,ubuntu 16.04.1, vivado 2017.4,MIZ7035FD
实验目的:学习PCIe板卡和上位机的通讯过程,学习稍微复杂一点的linux的设备驱动,了解DMA的工作方式。
实验材料:见附件中的 riffa_docs
工程参见附录中的miz7035_riffa_prj (工程是我从米联客的mia702改过来的,所以工程名字比较奇怪....懒得改了) Linux驱动参见目录中的 riffa_driver_app
其他的学习材料:
https://blog.csdn.net/vacajk/article/details/79073125 这篇文章建议提前看,写的非常不错的
https://github.com/KastnerRG/riffa 其实github上有不少的riffa的原版和分支,随便找一个看看就行
实验内容:本实验基于Riffa的官方工程移植到米联客的MIZ7035
1. 在win10下面打开vivado工程下载工程的bit文件(我不会在没有zynq的情况下制作固化的image,懒得去研究了....bit流先走着....)
2. 主机断电,将带电的开发板插入主板,然后主机上电,进入ubuntu
我是装的双操作系统,早前还请教过汤工关于在windows下用虚拟机中的ubuntu识别pcie设备的问题,发现比较困难.....
这一步请谨慎操作,出问题了笔者不负责
我的是华硕的TUF B360-PROGAMING(WIFI),每次在插拔PCIe设备的时候,都会发现主板要重启2-3次才能进入系统,一开始很慌张的...后来发现似乎也没什么问题..... ~.~
3. 进入ubuntu后,打开terminal,su进入管理员权限
4. lspci一下,应该能看到 类似
02:00.0 Memory controller: Xilinx Corporation Device 7014
HAHA, 说明设备已经被枚举成功
5. 按照riffa_documentation.pdf中的“3.1 Linux”中说的,分别
cd riffa_driver_app\riffa_zcu106\driver\linux
make setup <- 我不记得我是不是做过了.....
make
make install
6. lsmod 一下应该能看到已经安装了riffa模块
7. cd riffa_driver_app\riffa_zcu106\c_c++\linux\x64\sample_app
make
./testutil 2 0 0 5000
运行结果如附件截图所示~
ps:
1. 关于为啥驱动用的是riffa_zcu106 这是一个github上的分支版本,原始版本的驱动版本太老,在ubuntu上编译不过,这个版本的驱动修复了对应的问题
具体的学习材料可以从百度网盘上下载:
链接:https://pan.baidu.com/s/13JsYWw47qDBZa5uDZESJUg
提取码:iob8
菲尼克兔
|