版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/quhai1340/article/details/102815619
PYNQ官方给出SD img 文件的开发板目前有三块:PYNQ-Z1,PYNQ-Z2以及ZCU104。笔者这次将进行ZCU106的PYNQ移植。
一:准备工作
移植的准备工作参考这篇文章的:一:基本框架搭建
二:SD img的生成
看过笔者之前ZYBO板PYNQ移植的这里说明一下,ZCU106的PYNQ移植我们采用直接用bsp文件进行,所以不需要用Vivado进行最小SOC系统的搭建。
同ZYBO移植过程中,下载PYNQ,检查依赖库环境,编辑shell文件,修改newlib.sh(具体参考ZYBO移植)
git clone https://github.com/Xilinx/PYNQ.git
cd PYNQ
git checkout v2.3
git checkout -b vacajk_dev
./setup_host.sh
source /opt/pkg/petalinux/2018.2/settings.sh
source /opt/Xilinx/Vivado/2018.2/settings64.sh
source /opt/Xilinx/SDK/2018.2/settings64.sh
export PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH
在 /PYNQ/sdbuild/ 下新建文件夹 prebuilt,将下载好的bionic.aarch64.2.3.img复制到该文件夹
在 /PYNQ/boards/ 下新建 ZCU106 文件夹
将官网下载的ZCU106的bsp文件复制到这一文件夹。同时从ZCU104文件夹中拷贝 ZCU104.spec 至该文件夹,并对其内容修改如下:
ARCH_ZCU106:= aarch64
BSP_ZCU106 := xilinx-zcu106-v2018.2-final.bsp
STAGE4_PACKAGES_ZCU106 := pynq ethernet
保存后将文件夹修改为ZCU106.spec。
返回/PYNQ/sdbuild/ 右键打开终端,首先生成boot所需文件:
make boot_files BOARDS=ZCU106
完成后再生成镜像文件:
make images BOARDS=ZCU106 PREBUILT=./prebuilt/bionic.aarch64.2.3.img
生成的文件都在存放在 /PYNQ/sdbuild/output/ 文件夹下
三:SD卡的镜像烧写
同ZYBO过程,WIndows用Win32_Disk_Imager将img烧写到SD卡,注意复制BOOT.bin 以及 image.ub 文件到FAT32分区。
四:板卡启动
笔者之前完成过ZYBO-Z7开发板的PYNQ移植,这里重点比较说明一下ZCU106与ZYBO板之间启动方面的不同。
ZYBO开发板采用的是micro SD卡槽,而ZCU106采用SD卡槽,请有需要的同学准备SD卡套或直接采用SD卡进行镜像的烧写
ZYBO开发板的JTAG口与UART口是二合一的,这里重点强调一下进行串口通信采用的是UART端口,所以在ZCU106上进行移植时应将电脑的USB插口与ZCU106的UART口连接
Win10会自动检测安装USB to UART Bridge,之后用Xshell进行端口访问时可通过设备管理器查看需要的端口号
将开发板的SW6(四个拨片的那个开关,标注为8A)拨至SD启动,如图所示,1号打开,其余关闭
启动成功。
补充说明:关于上电启动后ZCU106板不能自动获取ip地址的解决方法
经过检验,这一问题是由于eth0文件的缺失造成的,解决方法如下:
在 PYNQ/sdbuild/packages/ethernet 文件夹中找到 eth0 文件,将其复制到用于启动的sd卡的 /etc/network/interfaces.d 下
由于访问权限原因,建议进入终端,用管理员账户进行复制。
完成后再次SD卡启动开发板即可检测到自动获取的ip。
之后的Jupyter notebook的使用这些网上教程很多,不做赘述。