Petalinux加速axi-dma内核驱动缓冲区读过程

电子说

1.2w人已加入

描述

1、参考https://forums.xilinx.com/t5/%E5%B5%8C%E5%85%A5%E5%BC%8F-%E7%A1%AC%E4%BB...

按照官方说明,copy数据速率基本为系统ddr的带宽。

2、工程 生成数据大小2048X2048 4MB 也就是一次dma数据大小,一次dma数据的大小与axi-dma核中buffer lenght registr有关,长度最大26,也就是2^26个字节,为64MB,工程中加入ila核用来调试。

编译

3、生成bit后,导出xsa文件。
4、在vitis中应用xsa文件,新建a5_zynqmp_fsbl工程,按照官方说明,修改sfsbl_main.c,并编译,在debug文件夹中可以找到a5_zynqmp_fsbl.elf文件。

编译

5、在petalinux环境中新建工程,参考以前的博客,直到petalinux-build。
6、修改设备树

编译

7、重新petalinux-build。
8、在image/linux文件夹下

编译

9、拷贝出bl31.elf boot.scr image.ub pmufw.elf system.bit system.dtb u-boot.elf 七个文件,以及vitis中生成的a5_zynqmp_fsbl.elf共8个文件,到linux_dma_test.
10、在petalinux工程中,build文件夹中拷贝bootgen.bif文件,并修改成如下

编译

11、新建regs.init

编译

12、生成BOOT.BIN,然后一起将BOOT.BIN image.ub和boot.scr复制到sd卡。

编译

13、测试

编译

编译

14、上电开机,加载axi-dma的驱动,将3.0U盘挂在到mnt下

编译

由以上可以看出,pl生成一张4MB的数据耗时43ms,将4MB数据由dma读缓冲区copy到内核缓冲区耗时4ms,基本接近ddr的带宽。整个链路中的带宽完全受限于U盘的存储速度。

15、U盘中的图片,大小128MB,数据正确。

编译

审核编辑:符乾江
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分