微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > u-boot image生成

u-boot image生成

时间:10-02 整理:3721RD 点击:


这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot.elf、system.bit和fsbl.elf。以下分别介绍一下3个文件的生成过程:

1.u-boot.elf


u-boot.elf的生成在《u-boot编译》中有所介绍,笔者使用虚拟机搭建了ubuntu环境,首先建立交叉编译环境,然后通过git克隆xilinx的u-boot资源,执行以下代码:

  1. cd u-boot-xlnx         #转换到u-boot目录
  2. make zynq_zed_config  #配置zed板
  3. make                #执行编译

复制代码



在当前目录下生成了u-boot文件,如图1所示,添加elf后缀,u-boot.elf文件则生成完成。



图1


2. system.bit


system.bit是PL部分的BIT文件,首先在ISE软件中新建工程,加入zynq系统,在EDK中配置ARM核及其外设,返回ISE生成TOP HDL Source,点击generate Programming File即可生成Bit文件,如图2所示,然后点击Export Hardware Design To SDK with Bitstream进入下一步。



图2


3.fsbl.elf


fsbl.elf文件需要在SDK软件中生成,首先新建工程,选择Xilinx CProject,然后选择Zynq FSBL,编译工程即可生成zynq_fsbl_0.elf文件,过程如图3、4、5所示。



图3






图4



图5


Image生成


集齐u-boot.elf、system.bit和fsbl.elf就可以生成Image文件了,在SDK软件中点击Xilinx Tools→CreateBoot Image,如图6所示,然后选择3个文件,点击Create Image,生成文件如图8所示,其中u-boot.bin文件就是需要的u-boot image文件,将其重命名为BOOT.BIN后拷贝到SD卡中。



图6



图7



图8


zynq芯片上电初始化,进入u-boot,会自动加载devicetree、zImage和RootFS,然后启动Linux。

小编你好,我按你的步骤生成的boot.bin文件考到SD卡后,出现如下启动不了的错误:终端输出信息如下:
U-Boot 2012.04.01 (Mar 19 2014 - 09:37:51)
DRAM:  512 MiB
WARNING: Caches not enabled
MMC:   SDHCI: 0
Using default environment
In:    serial
Out:   serial
Err:   serial
Net:   zynq_gem
Hit any key to stop autoboot:  0
Copying Linux from SD to RAM...
Device: SDHCI
Manufacturer ID: 41
OEM: 3432
Name: SD8GB
Tran Speed: 25000000
Rd Block Len: 512
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
reading zImage
2458680 bytes read
reading devicetree.dtb
9660 bytes read
reading ramdisk8M.image.gz
3694108 bytes read
## Starting application at 0x00008000 ...
Uncompressing Linux... done, booting the kernel
这个怎么解决啊?望小编指教!

图7有明显错误,文件顺序由上而下应该是fsbl.elf->FPGA bit文件->u-boot.elf

谢谢,分享

小编辛苦了,付出肯定有回报,顶一下3026827905

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top