当前位置:   article > 正文

zynq的U-Boot加载fpga比特流文件_配置u-boot加载bit

配置u-boot加载bit

一、进入U-Boot命令行界面,查看加载比特流文件的环境变量

在开机倒计时的时候,按任意键进入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”,请直接看三。

二、安装bootgen,使用bootgen命令行将.bit文件打包为.bin文件

1、安装bootgen

1、下载bootgen-master文件(https://github.com/Xilinx/bootgen

2、编译bootgen-master文件

编译完后会产生一个bootgen文件夹:

因为bootgen-master目录下文件太多,我移动到了别的目录下:

2、使用bootgen命令行将.bit文件打包为.bin文件

将比特流文件(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

三、将比特流文件复制到SD卡

四、加载比特流文件

1、手动加载

手动加载直接在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就可继续启动开发板了

2、自动加载

将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文件,正常开机后看看见加载成功后的输出信息:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/800350
推荐阅读
相关标签
  

闽ICP备14008679号