启明星Zynq7010制作PYNQ V2.4镜像过程记录

记录一下启明星Zynq7010制作PYNQ V2.4镜像的过程

开发环境和资源

  1. 装有Vivado2018.3的Win11系统
  2. 装有Vivado2018.3、petalinux2018.3的Ubuntu16.04.3(VMware虚拟机环境下)
  3. 正点原子启明星Zynq7010开发板

准备.bit文件和.hdf文件

打开Vivado2018.3,新建一个项目,Create Block Design,搭建Zynq7010的最小系统
配置PS,配置项目如下

  1. DDR3选择"MT41J128M16 HA-125"
  2. MIO勾选UART0(MIO14…15),SD0(MIO40…45)
  3. MIO勾选ENET0(MIO16…27),下拉勾选MDIO(MIO52…53),Speed选项选择"fast"
  4. Bank1 I/O Voltage选择 “LVCMOS 1.8V”(根据开发板原理图选择)
    在这里插入图片描述
    配置好之后连线,引出接口,如图
    在这里插入图片描述
    最后验证Block Design,没问题的话保存
    找到.bd文件执行"Generate Output Products"、“Create HDL Wrapper”
    在这里插入图片描述
    执行"Generate Bitstream",生成bit文件
    最后分别导出Hardware和Bitstream
    在这里插入图片描述

在这里插入图片描述
这样就得到了我们需要的.bit文件和.hdf文件了,在Vivado工程**.sdk目录和**.runs/imp_1目录下
分别重命名为system.hdf和base.bit,备用

下载并配置PYNQ

打开终端,执行

sudo dpkg-reconfigure dash

选"NO"

接下来将PYNQ源码从gitHub上下载下来,我这里下载到家目录下
确保有git环境,由于项目比较大,直接git下载比较慢,我这里用的Edge浏览器,安装了名为“GitHub加速”的插件
在这里插入图片描述
这样就获得了加速通道的下载地址
在这里插入图片描述
执行以下命令加速下载(根据自己的地址自行配置)

git clone -b v2.4 https://github.91chi.fun/https://github.com/Xilinx/PYNQ.git

下完之后进入目录(我这里下载到家目录)

cd PYNQ
ls

在这里插入图片描述
接着从v2.4分支创建一个新的分支,名为zynq7010

 git checkout v2.4
 git checkout -b zynq7010  

下载文件系统pynq_rootfs_arm_v2.4.zip备用

下载地址: pynq_rootfs_arm_v2.4.zip.
登录Xilinx,填写一下相关信息,开始下载。7个G,我用IDM下载的,还挺快,最后下载成功,bionic.arm.2.4.img

配置PYNQ

cd PYNQ/sdbuild/scripts/ 执行./setup_host.sh 把qemu和crosstool-ng下载下来,默认下载到/opt 目录
下载出错可能是因为权限问题,修改权限重新下载即可
下载好之后cd /opt/crosstool-ng/lib/crosstool-ng-1.22.0/scripts/build/libc/修改newlib.sh
找到local libc_src=将后面的内容修改为如下内容,强烈推荐用VsCode修改编辑

local libc_src="http://mirrors.kernel.org/sourceware/newlib"

配置一下环境变量sudo vi ~/.bashrc,在文末写入如下内容

alias sptl='source /opt/pkg/petalinux/2018.3/settings.sh'
alias svvd='source /opt/pkg/Vivado/2018.3/settings64.sh'
alias ssdk='source /opt/pkg/SDK/2018.3/settings64.sh'

export PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH

注意petalinux、Vivado、SDK的路径
使能环境变量

source ~/.bashrc
sptl
svvd
ssdk

由于没有安装SDx环境,所以cd PYNQ/sdbuild/,打开Makefile
找到并删除which sdx | fgrep ${KERNEL_VERSION}

准备make

PYNQ/sdbuild目录下新建文件夹 prebuilt ,将下载好的文件系统镜像bionic.arm.2.4.img拷贝至该目录
PYNQ/boards/ 目录下新建文件夹 zynq7010,在zynq7010目录下再新建两个文件夹分别为 base 和petalinux_bsp
将之前准备好的base.bit拷贝到base文件夹,在 petalinux_bsp 中再建立文件夹 hardware_project,将system.hdf拷贝到hardware_project文件夹
zynq7010目录下新建zynq7010.spec,并编辑以下内容,然后保存

ARCH_${BOARDS} := arm
BSP_${BOARDS} := 
BITSTREAM_${BOARDS} := base/base.bit

STAGE4_PACKAGES_Pynq-Z2 := pynq  ethernet

Make!

make之前先执行任意sudo操作,比如sudo ifconfig命令,否则make会报错

cd PYNQ/sdbuild
make BOARDS=zynq7010  PREBUILT=./prebuilt/bionic.arm.2.4.img -j16

-j16选项根据自己的系统配置来,我这里配置16个,也可以不进行配置
如果make发生报错,解决问题后先执行make clean,再重新make
大概编译了半小时就生成了镜像文件,在目录PYNQ/sdbuild/output
在这里插入图片描述

烧写镜像至SD卡

准备工具Win32DiskImager.
将生成的zynq7010-2.4.img复制到Window下使用Win32DiskImager将镜像烧写到SD卡上
软件会自动检测SD卡,选择好镜像后直接点击“写入”即可,大约10分钟写完
SD卡中其实就包含两个文件 image.ub 和 BOOT.BIN

启动开发板

将SD卡插入开发板,设置开发板启动方式为从SD卡启动
插上电源,插上网线,连接串口,打开MobaXterm,打开电源,查看串口
在这里插入图片描述
可以看到系统基于Ubuntu18.04,然后会自动登录,用户名为xilinx,默认密码为xilinx

开发板网络配置

查看一下开发板网络,发现没有以太网的配置
在这里插入图片描述
自己写一个以太网配置即可

cd /etc/network/
chmod 777 interfaces.d/  ##修改权限为777
cd interfaces.d/
vi eth0

写入以下内容

auto eth0
iface eth0 inet dhcp

auto eth0:1
iface eth0:1 inet static
address 192.168.2.99
netmask 255.255.255.0

保存退出

cd /etc/network/
chmod 755 interfaces.d/  ##把权限再修改回来

重启开发板,再查看一下网络ifconfig,ping一下百度看看效果

在这里插入图片描述
第一个地址为动态ip,第二个地址为静态ip(刚才写进配置文件的)

打开Jupyter Notebook

打开浏览器,我用的Edge,登入动态ip地址,默认端口9090,默认密码 xilinx,成功登录
在这里插入图片描述

遇到的问题

问题1

烧写镜像后开发板设置好一切后有网络能ping通外网,但Jupyter Notebook无法通过动态ip在浏览器打开**

解决方案1

重新烧写镜像,重新配置一边网络,成功打开Jupyter Notebook

参考资料

官方文档: PYNQ SD Card image.

EBAZ4205 ebit 矿板 PYNQ镜像制作详细步骤 zynq7010.

蚂蚁S9矿板ZYNQ7010开发板移植PYNQ_2.5.

PYNQ学习资料

PYNQ官方资料
PYNQ入门资料集锦
PYNQ社区
Tutorial: Rebuilding the PYNQ base overlay (PYNQ v2.3)

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
启明星zynq是一款集成了FPGA和ARM处理器的芯片,可以提供更高的计算能力和更灵活的外设接口。在进行FPGA开发时,需要首先熟悉zynq的架构和硬件资源分配。本文将从硬件设计和软件编程两个方面介绍启明星zynq的FPGA开发指南。 在硬件设计方面,首先需要了解zynq的FPGA架构和资源分配。FPGA的逻辑资源可用于实现各种功能模块,如时钟管理、数据处理等。在设计时,需要根据需求合理规划资源分配,以达到最佳的性能和功耗平衡。此外,还需要了解各种外设接口的特性和时序要求,确保设计的稳定性和可靠性。 在软件编程方面,启明星zynq使用ARM处理器作为主控,可以运行Linux操作系统或者裸机程序。对于裸机程序开发,需要熟悉ARM汇编和C语言编程,了解硬件的寄存器和外设控制寄存器的编程方式。对于Linux操作系统的开发,需要了解Linux内核和驱动的开发,以及使用相关工具进行交叉编译和调试。 除了硬件设计和软件编程,还需要掌握常用的开发工具和调试方法。Xilinx提供了一系列的开发工具,如Vivado和SDK,用于进行FPGA的综合、实现和验证。在调试过程中,可以使用逻辑分析仪和虚拟示波器等工具,对FPGA的信号进行分析和验证,以确保设计的正确性和稳定性。 总之,启明星zynq的FPGA开发指南需要掌握硬件设计和软件编程的知识,了解zynq的架构和资源分配,熟悉常用工具和调试方法。只有掌握了这些基础知识,并在实际项目中进行实践,才能更好地进行启明星zynq的FPGA开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值