本人是个小白,如果有什么问题请各位大佬多指点一下,谢谢!
参考资料:
米联客教程:S03_CH01_AXI_DMA_LOOP环路测试
平台:ZedBoard
vivado版本:2019.1
petalinux版本:2019.1
- vivado方面的具体配置请参考米联客的教程,我这里就不详细介绍了。
放一张我已经做好的整体图片供参考
在这里我要说个细节,就是我在参考教程时,因为我没有加OLED,所以开始的时候我将GP0给勾掉了,结果在petalinux-build时报错,所以在这里我们切记不要将GP0勾掉。
原因时:AXI DMA的数据传输虽然是用AXI-HP的接口,但是AXI DMA的配置接口S_AXI_Lite用的是AXI-GP接口,所以AXI-GP接口不能擅自去掉。
2. 将生成的hdf文件拷贝到Ubuntu下,准备进行Linux系统的移植。
我之前的博客都是基于zynqMP的,与zynq有一些差别
(1) 创建工程
(2) 导入hdf文件
(3) 修改petalinux-config->DTG Settings->MACHINE_NAME为zedboard
其余的配置都可以默认即可,因为默认情况下dma相关的驱动是被选中的
3. 创建模块,将驱动放入内核当中
4. 然后修改module下面的文件
5. 修改设备树
6. 然后编译程序,打包成BIN文件。
在这里我们要注意在打包BIN文件时,由于是zynq所以没有了pmufw。
由于我已经生成过了,所以下图中我在后面加了--force。
7. 然后将BOOT.BIN和image.ub复制到SD卡中
8. 启动板卡后,安装驱动
9. 将dma-proxy对应的测试程序,通过sdk进行编译,生产elf文件也放入到sd卡中。在安装完驱动,将sd卡挂载上,然后运行其程序。如下图所示,表示测试成功。