PYNQ移植实记 三、框架移植

ZYNQ 7015系列板卡 pynq框架移植

By Dnknow.恒

三、框架移植

1、板级描述文件准备

在最小Soc创建完成之后,从Vivado工程目录中得到
\demo.runs\impl_1\demo_wrapper.bit
\demo.sdk\demo_wrapper.hdf
两个文件

bit流文件用于FPGA配置,hdf文件用于对已建立的Soc系统进行描述。

对于hdf文件,在Vivado SDK中描述为
PYNQ移植实记 三、框架移植_第1张图片

其主要内容是已构建Soc寄存器组的结构。

以16进制查看分析可知,该文件是对Soc相关配置文件的打包与描述
PYNQ移植实记 三、框架移植_第2张图片

2、源文件修改

如果没有安装SDx环境,则需要删除makefile文件中的

vi <PYNQ repository>/sdbuild/Makefile
#删除如下内容
	which sdx | fgrep ${KERNEL_VERSION}

PYNQ移植实记 三、框架移植_第3张图片

crosstool-ng工具链脚本文件修改(第一篇中,问题记录中已说明)

vi /opt/crosstool-ng/lib/crosstool-ng-1.22.0/scripts/build/libc/newlib.sh
#修改如下内容
	"{http://mirrors.kernel.org/sourceware/newlib,
      ftp://sourceware.org/pub/newlib}"

PYNQ移植实记 三、框架移植_第4张图片

3、镜像构建

将准备好的bionic.arm.2.3.img离线文件拷贝到/sdbuild/prebuilt/目录下

将准备好的bit文件和hdf文件拷贝到/boards/Pynq7015目录下,并按照如下创建目录结构。
PYNQ移植实记 三、框架移植_第5张图片
其中Pynq7015.spec文件内容如:

vi ./boards/Pynq7015/Pynq7015.spec
##写入如下内容
ARCH_${BOARD} := arm
BSP_${BOARD} := 
BITSTREAM_${BOARD} := base/base.bit	

准备工作结束,回到makefile目录进行构建

cd ~/Desktop/PYNQ/sdbuild/
##从离线镜像构建
make BOARDS=Pynq7015 \
PREBUILT=./prebuilt/bionic.arm.2.3.img

##完全源代码构建
make BOARDS=Pynq7015

等待/sdbuild/output目录下生成.img,并烧录到SD卡

#dd写U盘	注:修改rootfs.img为自己项目生成文件名
df -h
sudo dd if=<PYNQ>/sdbuild/output/<rootfs.img> of=/dev/sdb bs=4M

注:从离线镜像构建 4进程耗时约2小时,从源码完全构建,4进程耗时约6小时

4、框架测试

将烧录完成的SD卡插入板卡中,上电启动,并接通网线。

在串口终端获取网卡IP,并在PC浏览器中访问jupyter-notebook,能正常访问,并使用简单常见的python函数。
PYNQ移植实记 三、框架移植_第6张图片
jupyter-notebook默认登录密码为xilinx
PYNQ移植实记 三、框架移植_第7张图片

框架移植篇完结!

附录、

修改内核参数或驱动参数:
当生成IMG镜像之后再/sdbuild/build//petalinux_project/目录下可以修改内核、文件系统与驱动;之后重新make即可。

cd <PYNQ>/sdbuild/build/<BOARD>/petalinux_project
petalinux-config 
petalinux-config -c kernel

导出BSP包命令:

make bsp BOARDS=Pynq7015

SSH访问构建时,断开SSH,构建进程不中断方法:

nohup make BOARDS=Pynq7015 &

你可能感兴趣的:(Pynq从零开始)