赞
踩
在开机倒计时的时候,按任意键进入U-Boot界面
输入指令查看环境变量:printenv
因为从vivado导出的比特流文件是.bit文件,而U-Boot的环境变量定义的指令是加载.bin文件的,因此要使用bootgen将.bit文件转换为.bin文件
注意第五行的bitstream_image=system.bit.bin,这也说明要将比特流文件转换为.bin文件,并命名为system.bit.bin
(也可以用修改环境变量,将“load”修改为“loadb”,同时修改bitstream_image=system.bit.bin,将等号后面修改为.bit文件)。如果是“loadb”或者已经修改为“loadb”,请直接看三。
1、下载bootgen-master文件(https://github.com/Xilinx/bootgen)
2、编译bootgen-master文件
编译完后会产生一个bootgen文件夹:
因为bootgen-master目录下文件太多,我移动到了别的目录下:
将比特流文件(system.bit)移动到虚拟机bootgen文件的同级目录下
1、在bootgen的同级目录下编写.bif文件,其中system.bit就是待转换的比特流文件
此时bootgen的同级目录下应该同时有以下几个文件:
bootgen system.bif system.bit
2、使用指令生成system.bit.bin文件
./bootgen -image system.bif -arch zynq -process_bitstream bin
手动加载直接在U-Boot命令行下手敲指令:load mmc 0 ${loadbit_addr} ${bitstream_image} && fpga load 0 ${loadbit_addr} ${filesize}
其实该指令来源于之前printenv打印出来的环境变量
也可直接输入mmc_loadbit后的指令:echo Loading bitstream from SD/MMC/eMMC to RAM.. && mmcinfo && load mmc 0 ${loadbit_addr} ${bitstream_image} && fpga load 0 ${loadbit_addr} ${filesize}
也可以使用环境变量的操作指令:run mmc_loadbit
手动加载完了之后,直接输入boot就可继续启动开发板了
将SD卡拔出,接入自己电脑,打开uEnv.txt文件添加以下内容:
!!!注意:开机后并没有执行run_mmc loadbit,要将run_mmc loadbit和run adi_sdboot调换位置。因为run_mmc loadbit和run adi_sdboot是按顺序执行的,执行了run adi_sdboot后,开发板就继续开机了,run_mmc loadbit就不会被执行了。
以上就实现了zynq开机后可以自动挂载fpga文件,正常开机后看看见加载成功后的输出信息:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。