zynq PS端通过EMIO访问PL资源

最近在研究zynq 中EMIO的使用,看了许多文章都是裸跑的,没有将zynq ARM的功能发挥出来,此处将介绍如何在linux下操作PL的资源,本文通过gpio-leds驱动操作emio管脚进行点灯实验作简要说明。

前提:已搭建好7030的linux运行环境
工具:vivado2016.4
板卡:安富利7030开发板

  1. 搭建PL端硬件资源
    先导入7030的板级支持包,搭建一个最简系统,如下图:
    在这里插入图片描述
    双击IP核,在GPIO处,选用EMIO功能:
    在这里插入图片描述
    完成后可ctrl+t ,自动生成连线:
    在这里插入图片描述
    完成后,新建xdc文件,写入约束条件,此处Y18即为PL的硬件接口,连接的是led灯。
    在这里插入图片描述
    完成后,生成HDF文件和BIT文件。
  2. 将HDF、BIT文件进行打包生成BOOT.bin文件。打包用Xilinx SDK 软件。先替换fsbl的hdf文件,进行编译:在这里插入图片描述
    然后将编译后的FSBL.elf文件和其他文件进行打包生成BOOT.bin。
    在这里插入图片描述
  3. 修改linux内核设备树文件,zynq BANK0-1的MIO管脚为0-53,BANK2-3管脚为54-117。所以这里从54开始:
    在这里插入图片描述
    4.编译设备树文件,完成后替换devicetree.dtb文件。
    5.测试:
    在这里插入图片描述
    通过键入以上命令,可以看到与PL连接的LED灯,亮灭变化。

猜你喜欢

转载自blog.csdn.net/cpj123cpj/article/details/84140385