我们知道MPSOC或者ZYNQ的启动文件BOOT.BIN 通常由三最少三部分组成
1,FSBL 第一阶段引导加载器
2,BIT流文件
3,用户APP文件
用户使用这个三个文件生成BOOT.BIN时候往往用SDK的用户界面,分别选择这三个文件之后生成。其实这种方法实际上是先生成了一个.BIF文件,这个BIF记录了上述三个文件的路径,以及处理器的型号等。如下:
//arch = zynq; split = false; format = BIN
the_ROM_image:
{
[bootloader]temp\no_app_fsbl.elf
temp\top.bit
temp\u-boot.elf
}
有了这个文件,之后SDK界面调用了bootgen.exe这个小工具,用命令行将这个.bif文件输入给boot.gen如下:
bootgen -image output_zynq.bif -o temp/BOOT.bin -w on
这里-o是生成的boot.bin的输出路径。-w on是允许warning提示。
另外bootgen.exe的运行需要用到一些动态库,我也挨个挑选出来放在bootgen.exe所在目录。就有了下面截图的目录结构
这里我们可以用文本打开.BAT文件和BIF文件,修改文件路径,设置输入文件和输出文件boot.bin的路径。另外在批处理文件里看到的ping指令,实际就是延迟几秒,让用户看到运行结果。
以上文件都是我从vivado里面拷贝出来的。
通过百度网盘分享的文件:boot_gen.zip
链接:https://pan.baidu.com/s/1xbZR00CBCGgGdbRW1_no0A
提取码:bacp