ZYNQ7000平台 - Linux环境下pl-ps使用AXI-DMA进行数据传输
本人是个小白,如果有什么问题请各位大佬多指点一下,谢谢!
参考资料:
米联客教程: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. 创建模块,将驱动放入内核当中
将下载的驱动dma-proxy.c和dma-proxy.h复制到下图recipes-modules/dma-proxy/files/下

4. 然后修改module下面的文件


5. 修改设备树

6. 然后编译程序,打包成BIN文件。
在这里我们要注意在打包BIN文件时,由于是zynq所以没有了pmufw。
由于我已经生成过了,所以下图中我在后面加了--force。

7. 然后将BOOT.BIN和image.ub复制到SD卡中
8. 启动板卡后,安装驱动

9. 将dma-proxy对应的测试程序,通过sdk进行编译,生产elf文件也放入到sd卡中。在安装完驱动,将sd卡挂载上,然后运行其程序。如下图所示,表示测试成功。

源码地址:https://download.csdn.net/download/weixin_39115855/12680967
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)