案例包含PL端Vivado工程,主要使用Xilinx提供的标准IP核配置PL端资源实现接口扩展,同时包含PS端裸机/Linux程序、PL端MicroBlaze应用程序。
案例使用Block Design + Verilog语言方式进行开发,可在Vivado界面点击"IP INTEGRATOR -> Open Block Design"打开BLOCK DESIGN开发界面。
图 1
可点击"Sources -> Constraints",双击打开.xdc约束文件。
图 2
处理器硬件资源详细开发说明可查阅产品资料“6-开发参考资料\数据手册\核心板元器件\ZYNQ\”目录下的《ug585-Zynq-7000-TRM.pdf》文档。
视频相关案例说明,请查阅视频案例开发手册。
1 axi_gpio_led_demo案例
1.1 案例功能
案例功能:PS端通过AXI4-Lite总线发送命令至PL端AXI GPIO IP核,IP核再根据命令控制评估底板PL端LED5的状态
图 3
1.1 操作说明
1.2.1 基于裸机测试
加载PS端裸机程序、PL端程序后,即可看到评估底板的LED5每隔0.5s亮灭一次。
1.2.2 基于Linux测试
将本案例的动态设备树镜像文件pl.dtbo和PL端.bin格式可执行文件复制到"/lib/firmware/"目录下,并将PL端可执行文件重命名为system_wrapper.bin,然后执行如下命令加载设备树文件和PL端可执行文件。
Target# mount -t configfs configfs /configfs
Target# mkdir /configfs/device-tree/overlays/full
Target# echo pl.dtbo > /configfs/device-tree/overlays/full/path
图 4
由上图可知PL端实现的GPIO控制器为905。
请执行如下命令,配置GPIO为输出模式。
Target# ls /sys/class/gpio/
Target# echo 905 > /sys/class/gpio/export
Target# echo out > /sys/class/gpio/gpio905/direction
图 5
执行如下命令,即可控制评估底板LED5的亮灭。
Target# echo 1 > /sys/class/gpio/gpio905/value
Target# echo 0 > /sys/class/gpio/gpio905/value
图 6
1.1 Vivado工程说明
进入BLOCK DESIGN开发界面,双击IP核框图,可查看IP核的具体配置信息。
图 7
点击BLOCK DESIGN开发界面下的"Address Editor"选项,可查看IP核分配的地址为0x41200000,PS端可通过该地址对IP核进行控制。
图 8
1.2 IP核配置
AXI GPIO IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg144-axi-gpio.pdf》。根据文档,通过寄存器GPIO_TRI可将GPIO配置为输入/输出模式;通过寄存器GPIO_DATA可将GPIO配置为高/低电平,以及可读取GPIO的电平状态。
图 9
图 10
图 11
#核心板#