vivado版本:2017.4
petalinux版本:2017.4
1、vivado硬件设计
vivado中并没有自带的AXI4接口可以使用,所以我们需要自己创建
选择创建一个新的AXI4外设
更改名字然后next,IP核的位置会放在你工程项目目录下
选择接口类型为Full,选择接口存储大小,我这里选择的是1024字节。
点击finish
将自定义的核添加到 block design 中
添加 smart_connect IP核
添加处理器,处理器相关设置根据自己的板子来进行设计。
想要使用AXI4从机接口,就必须打开GP0 主机接口
添加完成后,启动自动连接自动连接
最终完成的硬件图(不同ZYNQ芯片设计效果图不同,但一定要开启GP0接口):
查看XI4从机接口的地址,地址是0x7aa00000,这个地址我们之后会用到
然后生成创建顶层文件,生成bit流这些我就不赘述了,如有疑惑可以看我的这篇博客:
https://blog.csdn.net/yohe12/article/details/104789041
2、使用petalinux生成系统并导入开发板
将硬件资源导入ubuntu
使用 petalinux-create -t project --template zynq --name axi4_test
命令创建项目
使用petalinux-config --get-hw-description=./axi_slave_wrapper_hw_platform_0
命令来使用硬件资源生成系统
选择默认配置,然后选择 Exit 就会自动配置系统
使用 petalinux-build
命令编译系统
编译完成后,使用 petalinux-package --boot --fsbl zynq_fsbl.elf --fpga axi4_test_wrapper.bit --u-boot
生成BOOT.BIN
将BOOT.BIN 和 uimage.ub放入TF卡中,再启动开发板。
3、编写应用程序
现在我们要在应用程序中使用axi4的接口,使用mmap函数就可以将AXI4接口映射为一个地址,我们读写这个地址就相当于读写AXI4接口。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>