Zynq启动时分离bit和uboot

1、目的

在使用传统方式生成uboot后,需要用uboot.elf结合Xilinx的SDK打包成BOOT.BIN,作为系统启动的引导文件,打包时需要的文件有:

fsbl.elf

uboot.elf

*.bit文件

每次打包比较麻烦,现提出一种固定uboot后加载bit流方法,避免修改bit文件后频繁打包,方便调试。

2、使用工具

SDK 2019.1

bootgen

3、实现步骤

3.1windows操作

1、从vivado中export工程到SDK

2、创建fsbl工程,生成fsbl.elf

3、制作BOOT.BIN时,导出output.bif

第4行为fsbl.elf的地址

第5行为*.bit流的文件地址

第6行为SDK下生成的测试工程编译后得到的.elf文件

4、将fsbl.elf 和output.elf拷贝到Linux下uboot工程包中根目录下

3.2Linux操作

1、修改output.bif文件如下

//arch = zynq; split = false; format = BIN
the_ROM_image:
{
	[bootloader]./fsbl.elf
	./u-boot.elf
}

2、制作uboot编译脚本

#!/bin/bash

source /opt/SDK/2019.1/settings64.sh
export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
make distclean
make zynq_zc702_defconfig
make -j8

echo "Create BOOT.BIN!"
rm -rf BOOT.BIN boot.mcs
bootgen -image output.bif -o i boot.mcs -w on
bootgen -image output.bif -o i BOOT.BIN -w on

make -j8之前是生成u-boot.elf文件,后边的一段是生成BOOT.BIN文件

3、修改\include\configs\zynq-common.h内容,添加加载bit流文件指令,总共有2处;

     1)bitstream_image的名字,需要与vivado中生成的*.bit对应;

      2)从SD卡或者从emmc加载bit的指令。  

4、验证

将Linux下uboot根目录下的BOOT.BIN文件,vivado生成的*.bit文件,和后续制作好的uImage文件拷贝到SD卡下,插入工程板中,即可加载当前目录下的bit并启动内核,之后修改完成bit文件后,直接拷贝到SD卡中即可,无需再使用SDK合成

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值