MPSOC上PS和PL基于AXI-CDMA高速交互数据(linux)

                                                                       MPSOC上PS和PL基于AXI-CDMA高速交互数据(linux)

                                                                                                                                             alvin.lu@avnet.com

                                                                                                                                             2020.09.12

软件平台:
Vivado 2018.3
PetaLinux 2018.3
Ubuntu16.04.6真机

git地址 git@github.com:alvin-hao/cdma_training.git

硬件平台:
ZCU102 (ZynqMP)

 

一.MPSOC ps和pl通过cdma搬运ddr进行数据交互的核心思想比较简单,ps发指令,使能cdma,cdma把对应的数据从pl ddr搬运到ps ddr,搬运完成以中断的方式通知,其中软件设计的基础依据如下
 
CDMA寄存器的地址是0xA000_0000
CDMA能够操作PS的内存范围是0x0000_0000~0x7FFF_FFFF2GB
CDMA能够操作PL的内存范围是0x8000_0000~0x9FFF_FFFF512MB
 
1.petalinux的开发
基于附件bsp创建一个petalinux工程;
$ petalinux-create -t project -s cdma0930.bsp -n cdma
客户也可以基于xilinx官方的xilinx-v2018.2-zcu102.bsp创建一个工程然后用petalinux-config --get-hw-description=[SRC OF HDF]导入基于zcu102新的hdf工程
用命令
$ petalinux-build可以编译出ZCU102 linux启动需要的所有镜像文件
 
关于linux的bootargs的设置,需要设置linux能主动访问的ddr空间为0-1G,1-2G的空间用来与cdma共享,这里的range客户可以手动调节,但是一定需要留足够的空间给cdma搬运数据
我的设置如下
        chosen {
                bootargs = "earlycon console=ttyPS0,115200 clk_ignore_unused cma=128M devtmpfs.mount=1 uio_pdrv_genirq.of_id=generic-uio mem=1024M";
                stdout-path = "serial0:115200n8";
        };
 
 
编译完成后,用petalinux-packahe命令打包
$ petalinux-package --boot --fsbl zynqmp_fsbl.elf --fpga system.bit--u-boot --pmufw pmufw.elf --force
生成BOOT.BIN文件
然后把boot.bin和image.ub放到sd卡启动即可。
 
2.测试
第一步,把1.jpg从sd卡读取到ddr 0x4000 0000,然后用cdma把数据搬运到0x8000 0000
第二步,用cdma把0x8000 0000数据搬运到0x5000 0000,搬运的次数在第一步打印出来
第三步,用md5检验两个文件,是不是一致,一致则搬运成功
 

读写速度应该是超过1500MB/s了.
 
 
 
 
 
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值