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中描述为
其主要内容是已构建Soc寄存器组的结构。
以16进制查看分析可知,该文件是对Soc相关配置文件的打包与描述
2、源文件修改
如果没有安装SDx环境,则需要删除makefile文件中的
vi <PYNQ repository>/sdbuild/Makefile
#删除如下内容
which sdx | fgrep ${KERNEL_VERSION}
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}"
3、镜像构建
将准备好的bionic.arm.2.3.img离线文件拷贝到/sdbuild/prebuilt/目录下
将准备好的bit文件和hdf文件拷贝到/boards/Pynq7015目录下,并按照如下创建目录结构。
其中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函数。
jupyter-notebook默认登录密码为xilinx
框架移植篇完结!
附录、
修改内核参数或驱动参数:
当生成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 &