查看: 712|回复: 1

[教程] 嵌入式linux系统u-boot编译

[复制链接]

36

主题

1

好友

502

积分

举人

Rank: 4

  • TA的每日心情

    2015-8-5 11:09
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-7-26 13:22:05 |显示全部楼层
    首先是U-boot源码的来源,由于使用的是TI的BBB板子,所以TI自然也提供了自己定制的u-boot源码,该源码就在TI-SDK包中有,另外该安装包中的u-boot版本是2013.10版本,内核版本为3.12.10,除了源码包还自带工具链。
    TI-SDK最新版下载链接:http://software-dl.ti.com/sitara ... test/index_FDS.html
              当然,还有另外一个德国佬官方的u-boot源码,网站首页:http://www.denx.de/en/News/WebHome和Git代码库:git://www.denx.de/git/u-boot.git。
              以官方u-boot为例进行u-boot的编译,进入源码根目录可以看到内容如下,
    1. zhouyu@zhouyu-virtual-machine:~$ cd u-boot/  
    2.     zhouyu@zhouyu-virtual-machine:~/u-boot$ ls  
    3.     api        configs  dts       Kconfig      Makefile  snapshot.commit  
    4.     arch       CREDITS  examples  lib          net       spl  
    5.     board      disk     fs        Licenses     post      test  
    6.     common     doc      include   MAINTAINERS  README    tools  
    7.     config.mk  drivers  Kbuild    MAKEALL      scripts
    复制代码
    其中打开根目录下的Makefile文件,可以查看到本源码的版本,如下图:
    20140913172514074.png


    step1:在进行任何操作之前,先清除源码树,
    1. zhouyu@zhouyu-virtual-machine:~/u-boot$ make distclean  
    2.       CLEAN   scripts/basic  
    3.       CLEAN   scripts/kconfig  
    4.       CLEAN   include/config include/generated spl  
    5.       CLEAN   .config include/autoconf.mk include/autoconf.mk.dep include/config.h  
    6.     zhouyu@zhouyu-virtual-machine:~/u-boot
    复制代码
    step2:编译之前的配置工作

    1. zhouyu@zhouyu-virtual-machine:~/u-boot$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 O=am335x_beaglebone_black am335x_boneblack_defconfig  
    2.   GEN     /home/zhouyu/u-boot/am335x_beaglebone_black/Makefile  
    3.   HOSTCC  scripts/basic/fixdep  
    4.   HOSTCC  scripts/kconfig/conf.o  
    5.   SHIPPED scripts/kconfig/zconf.tab.c  
    6.   SHIPPED scripts/kconfig/zconf.lex.c  
    7.   SHIPPED scripts/kconfig/zconf.hash.c  
    8.   HOSTCC  scripts/kconfig/zconf.tab.o  
    9.   HOSTLD  scripts/kconfig/conf  
    10. #  
    11. # configuration written to .config  
    12. #  
    13. #  
    14. # configuration written to spl/.config  
    15. #  
    16. zhouyu@zhouyu-virtual-machine:~/u-boot
    复制代码
    make之后的第一个参数向Makefile指明了编译的目标体系结构,第二个参数向Makefile指明了使用哪个编译工具链,第四个参数告诉make程序,这个编译任务要分配4个线程来并行进行,以加快编译速度,通常这个数依据自己的处理器的核数来选择,一般选择2倍核数,第五个参数告诉Makefile编译时产生的中间文件以及最后的结果都存放在源码树根目录下的am335x_beaglebone_black文件夹中,这对于使用同一个源码树来编译多个不同配置的u-boot时是一个很好的选择。最后一个参数向Makefile指明了要使用哪个文件来进行具体的配置,最后所有的配置都将写进源码树根目录下面的.config文件中。
              而至于具体后面应该跟一个什么样的配置参数,可以从下图中寻找答案
    20140913174326234.png


    在源码树的configs文件夹中可以看到很多配置文件,我选择的是第一个红线框的配置文件。

    step3:正式开始编译工作
    1.   zhouyu@zhouyu-virtual-machine:~/u-boot$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 O=am335x_beaglebone_black all  
    2.       GEN     /home/zhouyu/u-boot/am335x_beaglebone_black/Makefile  
    3.     scripts/kconfig/conf --silentoldconfig Kconfig  
    4.     scripts/kconfig/conf --silentoldconfig Kconfig  
    5.       CHK     include/config.h  
    6.       UPD     include/config.h  
    7.       GEN     include/autoconf.mk  
    8.       GEN     include/autoconf.mk.dep  
    9.       GEN     spl/include/autoconf.mk  
    10.       CHK     include/config/uboot.release  
    11.       CHK     include/generated/timestamp_autogenerated.h  
    12.       GEN     /home/zhouyu/u-boot/am335x_beaglebone_black/Makefile  
    13.       UPD     include/generated/timestamp_autogenerated.h  
    14.       UPD     include/config/uboot.release  
    15.       Using /home/zhouyu/u-boot as source for U-Boot  
    16.       CHK     include/generated/version_autogenerated.h  
    17.       UPD     include/generated/version_autogenerated.h  
    18.       CC      lib/asm-offsets.s  
    19.       CC      arch/arm/lib/asm-offsets.s  
    20.       GEN     include/generated/asm-offsets.h  
    21.       GEN     include/generated/generic-asm-offsets.h  
    22.       LDS     u-boot.lds  
    23.       HOSTCC  tools/gen_eth_addr  
    24.       HOSTCC  tools/img2srec  
    25.       HOSTCC  tools/aisimage.o  
    26.       HOSTCC  tools/atmelimage.o  
    27.       WRAP    tools/common/bootm.c  
    28.       WRAP    tools/common/image-fit.c  
    29.       WRAP    tools/common/image.c  
    30.       HOSTCC  tools/default_image.o  
    31.       HOSTCC  tools/dumpimage.o  
    32.       HOSTCC  tools/fit_common.o  
    33.       HOSTCC  tools/fit_image.o  
    34.       HOSTCC  tools/gpimage-common.o  
    35.       HOSTCC  tools/gpimage.o  
    36.       HOSTCC  tools/image-host.o  
    37.       HOSTCC  tools/imagetool.o  
    38.       HOSTCC  tools/imximage.o  
    39.       HOSTCC  tools/kwbimage.o  
    40.       WRAP    tools/lib/crc32.c  
    41.       WRAP    tools/lib/fdtdec.c  
    42.       WRAP    tools/lib/fdtdec_common.c  
    43.       WRAP    tools/lib/libfdt/fdt.c  
    44.       WRAP    tools/lib/libfdt/fdt_ro.c  
    45.       WRAP    tools/lib/libfdt/fdt_rw.c  
    46.       WRAP    tools/lib/libfdt/fdt_strerror.c  
    47.       WRAP    tools/lib/libfdt/fdt_wip.c  
    48.       WRAP    tools/lib/md5.c  
    49.       WRAP    tools/lib/sha1.c  
    50.       WRAP    tools/lib/sha256.c  
    51.       HOSTCC  tools/mkenvimage.o  
    52.       HOSTCC  tools/mkimage.o  
    53.       HOSTCC  tools/mxsimage.o  
    54.       HOSTCC  tools/omapimage.o  
    55.       HOSTCC  tools/os_support.o  
    56.       HOSTCC  tools/pbl_crc32.o  
    57.       HOSTCC  tools/pblimage.o  
    58.       HOSTCC  tools/ublimage.o  
    59.       HOSTCC  tools/proftool  
    60.       HOSTCC  tools/common/bootm.o  
    61.       HOSTCC  tools/common/image-fit.o  
    62.       HOSTCC  tools/common/image.o  
    63.       HOSTCC  tools/lib/crc32.o  
    64.       HOSTCC  tools/lib/fdtdec.o  
    65.       HOSTCC  tools/lib/fdtdec_common.o  
    66.       HOSTCC  tools/lib/libfdt/fdt.o  
    67.       HOSTCC  tools/lib/libfdt/fdt_ro.o  
    68.       HOSTCC  tools/lib/libfdt/fdt_rw.o  
    69.       HOSTCC  tools/lib/libfdt/fdt_strerror.o  
    70.       HOSTCC  tools/lib/libfdt/fdt_wip.o  
    71.       HOSTCC  tools/lib/md5.o  
    72.       HOSTCC  tools/lib/sha1.o  
    73.       HOSTCC  tools/lib/sha256.o  
    74.       HOSTLD  tools/mkenvimage  
    75.       HOSTLD  tools/dumpimage  
    76.       HOSTLD  tools/mkimage  
    77.       LD      arch/arm/cpu/built-in.o  
    78.       CC      arch/arm/cpu/armv7/cache_v7.o  
    79.       CC      arch/arm/cpu/armv7/am33xx/clock_am33xx.o  
    80.       CC      arch/arm/cpu/armv7/am33xx/clock.o  
    81.       AS      arch/arm/lib/vectors.o  
    82.       AS      arch/arm/lib/crt0.o  
    83.       AS      arch/arm/lib/relocate.o  
    84.       CC      arch/arm/lib/bootm-fdt.o  
    85.       CC      arch/arm/lib/bootm.o  
    86.       CC      arch/arm/cpu/armv7/am33xx/sys_info.o  
    87.       CC      arch/arm/cpu/armv7/cpu.o  
    88.       CC      arch/arm/cpu/armv7/am33xx/ddr.o  
    89.       CC      arch/arm/cpu/armv7/syslib.o  
    90.       CC      arch/arm/lib/sections.o  
    91.       CC      arch/arm/lib/interrupts.o  
    92.       CC      board/ti/am335x/board.o  
    93.       CC      arch/arm/cpu/armv7/am33xx/emif4.o  
    94.       CC      arch/arm/cpu/armv7/omap-common/reset.o  
    95.       CC      arch/arm/cpu/armv7/omap-common/timer.o  
    96.       CC      arch/arm/cpu/armv7/am33xx/board.o  
    97.       CC      arch/arm/lib/reset.o  
    98.       LD      board/ti/am335x/built-in.o  
    99.       CC      arch/arm/cpu/armv7/omap-common/utils.o  
    100.       CC      arch/arm/lib/cache.o  
    101.       CC      arch/arm/cpu/armv7/am33xx/mux.o  
    102.       CC      arch/arm/lib/cache-cp15.o  
    103.       CC      arch/arm/cpu/armv7/omap-common/omap-cache.o  
    104.       LD      arch/arm/cpu/armv7/am33xx/built-in.o  
    105.       CC      common/main.o  
    106.       CC      disk/part.o  
    107.       AR      arch/arm/lib/lib.a  
    108.       CC      arch/arm/cpu/armv7/omap-common/boot-common.o  
    109.       CC      arch/arm/lib/eabi_compat.o  
    110.       CC      common/command.o  
    111.       LD      arch/arm/lib/built-in.o  
    112.       AS      arch/arm/cpu/armv7/omap-common/lowlevel_init.o  
    113.       CC      arch/arm/cpu/armv7/omap-common/mem-common.o  
    114.       LD      drivers/block/built-in.o  
    115.       CC      disk/part_dos.o  
    116.       CC      drivers/bootcount/bootcount.o  
    117.       LD      arch/arm/cpu/armv7/omap-common/built-in.o  
    118.       AS      arch/arm/cpu/armv7/start.o  
    119.       LD      arch/arm/cpu/armv7/built-in.o  
    120.       CC      drivers/bootcount/bootcount_davinci.o  
    121.       CC      common/exports.o  
    122.       LD      drivers/dma/built-in.o  
    123.       CC      common/hash.o  
    124.       CC      disk/part_efi.o  
    125.       LD      drivers/bootcount/built-in.o  
    126.       LD      drivers/crypto/built-in.o  
    127.       CC      drivers/gpio/omap_gpio.o  
    128.       CC      drivers/dfu/dfu.o  
    129.       CC      common/cli_hush.o  
    130.       LD      drivers/gpio/built-in.o  
    131.       CC      drivers/i2c/i2c_core.o  
    132.       CC      drivers/i2c/omap24xx_i2c.o  
    133.       CC      drivers/dfu/dfu_mmc.o  
    134.       LD      disk/built-in.o  
    135.       LD      drivers/hwmon/built-in.o  
    136.       LD      drivers/memory/built-in.o  
    137.       LD      drivers/misc/built-in.o  
    138.       CC      drivers/pcmcia/tqm8xx_pcmcia.o  
    139.       CC      drivers/dfu/dfu_ram.o  
    140.       LD      drivers/i2c/built-in.o  
    141.       CC      drivers/rtc/date.o  
    142.       CC      common/cli_simple.o  
    143.       LD      drivers/pcmcia/built-in.o  
    144.       CC      common/cli.o  
    145.       LD      drivers/dfu/built-in.o  
    146.       CC      common/cli_readline.o  
    147.       LD      drivers/rtc/built-in.o  
    148.       LD      drivers/sound/built-in.o  
    149.       LD      drivers/tpm/built-in.o  
    150.       LD      drivers/twserial/built-in.o  
    151.       LD      drivers/video/built-in.o  
    152.       CC      drivers/watchdog/omap_wdt.o  
    153.       CC      common/s_record.o  
    154.       CC      common/xyzModem.o  
    155.       CC      common/cmd_disk.o  
    156.       CC      common/autoboot.o  
    157.       LD      drivers/watchdog/built-in.o  
    158.       LD      drivers/built-in.o  
    159.       CC      common/board_f.o  
    160.       CC      common/board_r.o  
    161.       CC      drivers/input/input.o  
    162.       CC      common/cmd_boot.o  
    163.       CC      common/cmd_bootm.o  
    164.       CC      common/bootm.o  
    165.       LD      drivers/input/built-in.o  
    166.       LD      drivers/mtd/built-in.o  
    167.       CC      drivers/mmc/mmc.o  
    168.       CC      common/bootm_os.o  
    169.       CC      drivers/mmc/omap_hsmmc.o  
    170.       CC      common/cmd_help.o  
    171.       CC      common/cmd_version.o  
    172.       CC      common/env_attr.o  
    173.       CC      common/env_callback.o  
    174.       CC      common/env_flags.o  
    175.       CC      common/env_mmc.o  
    176.       CC      common/cmd_source.o  
    177.       CC      drivers/mmc/mmc_write.o  
    178.       CC      common/cmd_bdinfo.o  
    179.       CC      common/cmd_console.o  
    180.       LD      drivers/mtd/onenand/built-in.o  
    181.       CC      common/cmd_echo.o  
    182.       LD      drivers/mmc/built-in.o  
    183.       CC      drivers/mtd/spi/sf.o  
    184.       CC      drivers/net/cpsw.o  
    185.       CC      common/cmd_eeprom.o  
    186.       CC      drivers/mtd/spi/sf_params.o  
    187.       CC      drivers/net/phy/phy.o  
    188.       CC      drivers/mtd/spi/sf_probe.o  
    189.       CC      common/cmd_exit.o  
    190.       CC      drivers/net/phy/smsc.o  
    191.       LD      drivers/net/built-in.o  
    192.       LD      drivers/pci/built-in.o  
    193.       CC      common/cmd_ext4.o  
    194.       CC      drivers/mtd/spi/sf_ops.o  
    195.       LD      drivers/power/built-in.o  
    196.       LD      drivers/power/battery/built-in.o  
    197.       LD      drivers/power/fuel_gauge/built-in.o  
    198.       LD      drivers/net/phy/built-in.o  
    199.       LD      drivers/power/mfd/built-in.o  
    200.       CC      common/cmd_ext2.o  
    201.       CC      drivers/serial/serial.o  
    202.       CC      drivers/power/pmic/pmic_tps65217.o  
    203.       CC      common/cmd_fat.o  
    204.       LD      drivers/mtd/spi/built-in.o  
    205.       CC      drivers/spi/spi.o  
    206.       CC      drivers/power/pmic/pmic_tps65910.o  
    207.       CC      common/cmd_fdt.o  
    208.       CC      drivers/serial/ns16550.o  
    209.       CC      drivers/spi/omap3_spi.o  
    210.       LD      drivers/power/pmic/built-in.o  
    211.       LD      drivers/usb/eth/built-in.o  
    212.       CC      common/fdt_support.o  
    213.       CC      drivers/serial/serial_ns16550.o  
    214.       LD      drivers/serial/built-in.o  
    215.       CC      drivers/usb/gadget/epautoconf.o  
    216.       CC      common/cmd_fs.o  
    217.       LD      drivers/spi/built-in.o  
    218.       CC      common/cmd_gpio.o  
    219.       CC      drivers/usb/gadget/config.o  
    220.       CC      common/cmd_i2c.o  
    221.       CC      common/cmd_itest.o  
    222.       CC      drivers/usb/gadget/usbstring.o  
    223.       LD      drivers/usb/host/built-in.o  
    224.       CC      common/cmd_load.o  
    225.       CC      drivers/usb/gadget/g_dnl.o  
    226.       CC      common/cmd_mem.o  
    227.       LD      drivers/usb/musb/built-in.o  
    228.       LD      drivers/usb/phy/built-in.o  
    229.       CC      drivers/usb/musb-new/musb_gadget.o  
    230.       LD      drivers/usb/ulpi/built-in.o  
    231.       CC      fs/fs.o  
    232.       CC      common/miiphyutil.o  
    233.       CC      fs/ext4/ext4fs.o  
    234.       CC      drivers/usb/gadget/f_dfu.o  
    235.       CC      fs/ext4/ext4_common.o  
    236.       CC      drivers/usb/gadget/ether.o  
    237.       CC      drivers/usb/musb-new/musb_gadget_ep0.o  
    238.       CC      common/cmd_mii.o  
    239.       CC      drivers/usb/musb-new/musb_core.o  
    240.       CC      common/cmd_mdio.o  
    241.       CC      fs/ext4/dev.o  
    242.       CC      common/cmd_misc.o  
    243.       CC      drivers/usb/gadget/rndis.o  
    244.       LD      fs/ext4/built-in.o  
    245.       CC      fs/fat/fat_write.o  
    246.       CC      drivers/usb/musb-new/musb_uboot.o  
    247.       CC      common/cmd_mmc.o  
    248.       CC      drivers/usb/musb-new/musb_host.o  
    249.       LD      drivers/usb/gadget/built-in.o  
    250.       CC      common/cmd_net.o  
    251.       CC      lib/lzo/lzo1x_decompress.o  
    252.       CC      common/cmd_part.o  
    253.       CC      common/cmd_pcmcia.o  
    254.       LD      lib/lzo/built-in.o  
    255.       CC      lib/zlib/zlib.o  
    256.       CC      common/cmd_sf.o  
    257.       CC      drivers/usb/musb-new/musb_dsps.o  
    258.       LD      drivers/usb/musb-new/built-in.o  
    259.       CC      common/cmd_spi.o  
    260.       CC      common/cmd_test.o  
    261.       CC      fs/fat/file.o  
    262.       CC      lib/crc7.o  
    263.       CC      common/cmd_usb.o  
    264.       CC      common/usb.o  
    265.       LD      fs/fat/built-in.o  
    266.       LD      fs/built-in.o  
    267.       LD      lib/zlib/built-in.o  
    268.       CC      lib/crc8.o  
    269.       CC      lib/libfdt/fdt.o  
    270.       CC      lib/crc16.o  
    271.       CC      lib/fdtdec_common.o  
    272.       CC      lib/libfdt/fdt_ro.o  
    273.       CC      common/usb_hub.o  
    274.       CC      lib/gunzip.o  
    275.       CC      common/usb_storage.o  
    276.       CC      lib/initcall.o  
    277.       CC      common/cmd_ximg.o  
    278.       CC      lib/lmb.o  
    279.       CC      lib/libfdt/fdt_rw.o  
    280.       CC      common/cmd_spl.o  
    281.       CC      lib/ldiv.o  
    282.       CC      lib/md5.o  
    283.       CC      net/arp.o  
    284.       CC      common/flash.o  
    285.       CC      lib/libfdt/fdt_strerror.o  
    286.       CC      lib/libfdt/fdt_sw.o  
    287.       CC      common/splash.o  
    288.       CC      net/bootp.o  
    289.       CC      lib/net_utils.o  
    290.       CC      common/cmd_dfu.o  
    291.       CC      lib/libfdt/fdt_wip.o  
    292.       CC      lib/qsort.o  
    293.       CC      net/eth.o  
    294.       CC      common/cmd_gpt.o  
    295.       CC      lib/sha1.o  
    296.       CC      lib/libfdt/fdt_empty_tree.o  
    297.       CC      lib/libfdt/fdt_addresses.o  
    298.       LD      lib/libfdt/built-in.o  
    299.       CC      lib/sha256.o  
    300.       CC      net/net.o  
    301.       CC      common/cmd_nvedit.o  
    302.       CC      lib/strmhz.o  
    303.       CC      lib/hashtable.o  
    304.       CC      common/env_common.o  
    305.       CC      net/nfs.o  
    306.       CC      net/ping.o  
    307.       CC      common/console.o  
    308.       CC      lib/errno.o  
    309.       CC      lib/display_options.o  
    310.       CC      net/tftp.o  
    311.       CC      lib/ctype.o  
    312.       CC      lib/crc32.o  
    313.       CC      lib/div64.o  
    314.       CC      common/dlmalloc.o  
    315.       LD      net/built-in.o  
    316.       CC      lib/hang.o  
    317.       LD      test/built-in.o  
    318.       CC      lib/linux_string.o  
    319.       LD      test/dm/built-in.o  
    320.       CC      lib/string.o  
    321.       CC      common/image.o  
    322.       CC      common/image-fdt.o  
    323.       CC      lib/time.o  
    324.       AS      spl/arch/arm/lib/vectors.o  
    325.       AS      spl/arch/arm/lib/crt0.o  
    326.       CC      spl/arch/arm/lib/spl.o  
    327.       CC      common/image-fit.o  
    328.       CC      spl/arch/arm/lib/sections.o  
    329.       CC      lib/uuid.o  
    330.       CC      spl/arch/arm/lib/interrupts.o  
    331.       CC      common/memsize.o  
    332.       CC      spl/arch/arm/lib/reset.o  
    333.       CC      lib/vsprintf.o  
    334.       CC      common/stdio.o  
    335.       CC      spl/arch/arm/lib/cache.o  
    336.       CC      spl/arch/arm/lib/cache-cp15.o  
    337.       AR      spl/arch/arm/lib/lib.a  
    338.       CC      spl/arch/arm/lib/eabi_compat.o  
    339.       LD      spl/arch/arm/lib/built-in.o  
    340.       CC      spl/arch/arm/cpu/armv7/cache_v7.o  
    341.       CC      spl/arch/arm/cpu/armv7/am33xx/clock_am33xx.o  
    342.       LD      common/built-in.o  
    343.       CC      spl/arch/arm/cpu/armv7/am33xx/clock.o  
    344.       CC      spl/arch/arm/cpu/armv7/cpu.o  
    345.       CC      spl/arch/arm/cpu/armv7/syslib.o  
    346.       LD      lib/built-in.o  
    347.       AS      spl/arch/arm/cpu/armv7/lowlevel_init.o  
    348.       AS      spl/arch/arm/cpu/armv7/start.o  
    349.       CC      spl/arch/arm/cpu/armv7/am33xx/sys_info.o  
    350.       CC      spl/arch/arm/cpu/armv7/omap-common/reset.o  
    351.       CC      spl/arch/arm/cpu/armv7/am33xx/ddr.o  
    352.       CC      examples/standalone/stubs.o  
    353.       CC      spl/arch/arm/cpu/armv7/omap-common/timer.o  
    354.       CC      spl/arch/arm/cpu/armv7/am33xx/emif4.o  
    355.       CC      spl/arch/arm/cpu/armv7/omap-common/utils.o  
    356.       CC      examples/standalone/hello_world.o  
    357.       CC      spl/board/ti/am335x/mux.o  
    358.       CC      spl/arch/arm/cpu/armv7/am33xx/board.o  
    359.       CC      spl/arch/arm/cpu/armv7/omap-common/omap-cache.o  
    360.       CC      spl/arch/arm/cpu/armv7/am33xx/mux.o  
    361.       LD      examples/standalone/libstubs.o  
    362.       CC      spl/board/ti/am335x/board.o  
    363.       LD      examples/standalone/hello_world  
    364.       CC      spl/arch/arm/cpu/armv7/omap-common/boot-common.o  
    365.       LD      spl/arch/arm/cpu/armv7/am33xx/built-in.o  
    366.       AS      spl/arch/arm/cpu/armv7/omap-common/lowlevel_init.o  
    367.       CC      spl/arch/arm/cpu/armv7/omap-common/mem-common.o  
    368.       OBJCOPY examples/standalone/hello_world.srec  
    369.       LD      spl/board/ti/am335x/built-in.o  
    370.       CC      spl/common/spl/spl.o  
    371.       OBJCOPY examples/standalone/hello_world.bin  
    372.       LD      spl/arch/arm/cpu/armv7/omap-common/built-in.o  
    373.       CC      spl/common/spl/spl_ymodem.o  
    374.       LD      spl/arch/arm/cpu/armv7/built-in.o  
    375.       CC      spl/common/spl/spl_net.o  
    376.       CC      spl/common/spl/spl_mmc.o  
    377.       CC      spl/common/spl/spl_fat.o  
    378.       CC      spl/disk/part.o  
    379.       CC      spl/disk/part_dos.o  
    380.       CC      spl/common/xyzModem.o  
    381.       LD      spl/common/spl/built-in.o  
    382.       CC      spl/drivers/i2c/i2c_core.o  
    383.       CC      spl/common/miiphyutil.o  
    384.       CC      spl/drivers/i2c/omap24xx_i2c.o  
    385.       CC      spl/disk/part_efi.o  
    386.       CC      spl/common/env_attr.o  
    387.       CC      spl/common/env_flags.o  
    388.       CC      spl/common/env_callback.o  
    389.       LD      spl/drivers/i2c/built-in.o  
    390.       CC      spl/drivers/gpio/omap_gpio.o  
    391.       CC      spl/common/env_nowhere.o  
    392.       CC      spl/common/cmd_nvedit.o  
    393.       LD      spl/disk/built-in.o  
    394.       CC      spl/drivers/mmc/mmc.o  
    395.       LD      spl/drivers/gpio/built-in.o  
    396.       CC      spl/drivers/mmc/omap_hsmmc.o  
    397.       CC      spl/common/env_common.o  
    398.       CC      spl/drivers/serial/serial.o  
    399.       CC      spl/drivers/serial/ns16550.o  
    400.       CC      spl/common/console.o  
    401.       CC      spl/drivers/serial/serial_ns16550.o  
    402.       LD      spl/drivers/mmc/built-in.o  
    403.       CC      spl/fs/fat/fat_write.o  
    404.       CC      spl/lib/crc16.o  
    405.       LD      spl/drivers/serial/built-in.o  
    406.       CC      spl/lib/net_utils.o  
    407.       CC      spl/lib/hashtable.o  
    408.       LD      spl/drivers/power/built-in.o  
    409.       CC      spl/common/dlmalloc.o  
    410.       CC      spl/lib/errno.o  
    411.       CC      spl/lib/display_options.o  
    412.       CC      spl/common/image.o  
    413.       CC      spl/lib/crc32.o  
    414.       CC      spl/common/image-fdt.o  
    415.       CC      spl/lib/ctype.o  
    416.       CC      spl/lib/div64.o  
    417.       CC      spl/lib/hang.o  
    418.       CC      spl/common/memsize.o  
    419.       CC      spl/common/stdio.o  
    420.       CC      spl/lib/linux_string.o  
    421.       CC      spl/lib/string.o  
    422.       LD      u-boot  
    423.       LD      spl/common/built-in.o  
    424.       CC      spl/drivers/power/pmic/pmic_tps65217.o  
    425.       LD      spl/fs/fat/built-in.o  
    426.       LD      spl/fs/built-in.o  
    427.       CC      spl/drivers/power/pmic/pmic_tps65910.o  
    428.       CC      spl/lib/time.o  
    429.       LD      spl/drivers/power/pmic/built-in.o  
    430.       CC      spl/net/arp.o  
    431.       CC      spl/net/bootp.o  
    432.       CC      spl/lib/uuid.o  
    433.       CC      spl/net/eth.o  
    434.       CC      spl/drivers/watchdog/omap_wdt.o  
    435.       CC      spl/lib/vsprintf.o  
    436.       LD      spl/drivers/watchdog/built-in.o  
    437.       CC      spl/drivers/usb/musb-new/musb_gadget.o  
    438.       LD      spl/arch/arm/cpu/built-in.o  
    439.       CC      spl/drivers/usb/musb-new/musb_gadget_ep0.o  
    440.       CC      spl/net/net.o  
    441.       LD      spl/lib/built-in.o  
    442.       LDS     spl/u-boot-spl.lds  
    443.       CC      spl/drivers/usb/musb-new/musb_core.o  
    444.       CC      spl/drivers/usb/musb-new/musb_uboot.o  
    445.       CC      spl/net/tftp.o  
    446.       CC      spl/drivers/usb/musb-new/musb_host.o  
    447.       CC      spl/drivers/usb/musb-new/musb_dsps.o  
    448.       LD      spl/net/built-in.o  
    449.       OBJCOPY u-boot.bin  
    450.       OBJCOPY u-boot.srec  
    451.       LD      spl/drivers/usb/musb-new/built-in.o  
    452.       LD      spl/u-boot-spl  
    453.       OBJCOPY spl/u-boot-spl.bin  
    454.       MKIMAGE MLO  
    455.       MKIMAGE u-boot.img
    复制代码
    编译工作至此完成。得到的结果如下图
    20140913182925455.png


    图中所示文件和文件夹都在O=am335x_beaglebone_black所指定的文件夹中。
    u-boot——ELF格式的可执行文件,由于里面含有调试程序所选的信息,所以该格式的可执行文件体积最大。
    u-boot.bin——可以直接写入Flash的二进制可执行文件,直接被运行。
    u-boot.srec——u-boot映像的S-Record格式
    u-boot.map——这个文件包含了u-boot可执行文件的映像符号表
    MLO——这个文件也是一个引导加载程序,用于加载u-boot.img到SDRAM。
    20140913182934332副本.png


    u-boot-spl.bin——这个文件实际上就是纯粹的SPL程序,和上图的MLO文件相比,MLO=头部信息+u-boot-spl.bin。



    具体使用那个文件根据自己的需要选择。
    从SD卡启动时,应该把MLO、u-boot.img文件放到boot分区。
    从串口启动时,应该传送u-boot-spl.bin、u-boot.img文件。

    转自博客zy812248258

    回复

    使用道具 举报

    0

    主题

    0

    好友

    3

    积分

    白丁

    Rank: 1

    该用户从未签到

    发表于 2017-7-27 14:30:19 |显示全部楼层
    学习了!感谢分享!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-10-23 05:03 , Processed in 0.137336 second(s), 14 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部