zynq的U-Boot加载fpga比特流文件

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

  • 29
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,下面是在Zynq U-Boot模式下使用PL网口的详细教程: 1. 首先,确保你的PL设计中有一个可用的以太网控制器,并且已经在硬件中正确连接。同时,需要确保PL网口的物理接口已经与板子上的网络端口连接,可以通过网线连接到交换机或路由器上。 2. 接下来,需要在U-Boot中启用PL网口。可以通过设置U-Boot环境变量来实现。在U-Boot命令行中,使用以下命令定义环境变量: `setenv ethaddr <MAC address>` `setenv ipaddr <IP address>` `setenv serverip <TFTP server IP>` `setenv autoload no` `setenv ethact emacps` `setenv bootargs 'console=ttyPS0,115200 root=/dev/ram rw earlyprintk'` 注意,上面的`ethact`变量需要根据具体硬件和控制器类型进行设置。 3. 定义完环境变量后,需要保存环境变量并重新启动系统。在U-Boot命令行中,使用以下命令: `saveenv` `reset` 4. 系统重启后,需要通过ifconfig命令来配置PL网口。在U-Boot命令行中,使用以下命令: `ifconfig -a` `ifconfig eth0 <IP address>` `ping <IP address>` 注意,上面的`eth0`需要根据具体硬件和控制器类型进行设置。 5. 配置完成后,可以通过ping命令来测试PL网口的连接是否正常。如果一切正常,就可以在U-Boot模式下使用PL网口了。 6. 如果需要在U-Boot中使用TFTP来启动Linux内核,需要将内核文件通过TFTP传输到系统中。在U-Boot命令行中,使用以下命令: `tftpboot <load address> <kernel image name>` `bootm <load address>` 注意,上面的`load address`需要根据具体硬件和内存配置进行设置。 希望以上教程能够帮助你在Zynq U-Boot模式下使用PL网口。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值