栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

U-boot 执行流程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

U-boot 执行流程

一 源码 + 编译 + 输出 1. 链接 2. 编译
# for arm
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabi-
$ make vexpress_ca9x4_defconfig
$ make  "CFLAGS+= -g OPTFLAGS= -Os" -j4	| tee log
3. 中间文件
	System.map
	arch/arm/cpu/armv7/built-in.o
	arch/arm/cpu/armv7/cache_v7.o
	arch/arm/cpu/armv7/cache_v7_asm.o
	arch/arm/cpu/armv7/cp15.o
	arch/arm/cpu/armv7/cpu.o
	arch/arm/cpu/armv7/lowlevel_init.o
	arch/arm/cpu/armv7/sctlr.o
	arch/arm/cpu/armv7/start.o
	arch/arm/cpu/armv7/syslib.o
	arch/arm/cpu/built-in.o
	arch/arm/lib/ashldi3.o
	arch/arm/lib/ashrdi3.o
	arch/arm/lib/asm-offsets.s
	arch/arm/lib/bootm-fdt.o
	arch/arm/lib/bootm.o
	arch/arm/lib/built-in.o
	arch/arm/lib/cache-cp15.o
	arch/arm/lib/cache.o
	arch/arm/lib/crt0.o
	arch/arm/lib/crt0_arm_efi.o
	arch/arm/lib/div0.o
	arch/arm/lib/div64.o
	arch/arm/lib/eabi_compat.o
	arch/arm/lib/interrupts.o
	arch/arm/lib/lib.a
	arch/arm/lib/lib1funcs.o
	arch/arm/lib/lshrdi3.o
	arch/arm/lib/memcpy.o
	arch/arm/lib/memset.o
	arch/arm/lib/muldi3.o
	arch/arm/lib/psci-dt.o
	arch/arm/lib/reloc_arm_efi.o
	arch/arm/lib/relocate.o
	arch/arm/lib/reset.o
	arch/arm/lib/sections.o
	arch/arm/lib/setjmp.o
	arch/arm/lib/stack.o
	arch/arm/lib/uldivmod.o
	arch/arm/lib/vectors.o
	arch/arm/lib/zimage.o
	board/armltd/vexpress/built-in.o
	board/armltd/vexpress/vexpress_common.o
	cmd/bdinfo.o
	cmd/blk_common.o
	cmd/boot.o
	cmd/bootefi.o
	cmd/bootm.o
	cmd/bootz.o
	cmd/built-in.o
	cmd/echo.o
	cmd/elf.o
	cmd/exit.o
	cmd/ext2.o
	cmd/ext4.o
	cmd/fat.o
	cmd/fdt.o
	cmd/flash.o
	cmd/fs.o
	cmd/help.o
	cmd/load.o
	cmd/mem.o
	cmd/mii.o
	cmd/mmc.o
	cmd/net.o
	cmd/nvedit.o
	cmd/part.o
	cmd/pcmcia.o
	cmd/pxe.o
	cmd/source.o
	cmd/test.o
	cmd/version.o
	common/autoboot.o
	common/board_f.o
	common/board_r.o
	common/bootm.o
	common/bootm_os.o
	common/built-in.o
	common/cli.o
	common/cli_hush.o
	common/cli_readline.o
	common/cli_simple.o
	common/command.o
	common/console.o
	common/dlmalloc.o
	common/exports.o
	common/fdt_support.o
	common/flash.o
	common/hash.o
	common/image-fdt.o
	common/image.o
	common/init/board_init.o
	common/init/built-in.o
	common/main.o
	common/memsize.o
	common/menu.o
	common/miiphyutil.o
	common/s_record.o
	common/splash.o
	common/stdio.o
	disk/built-in.o
	disk/part.o
	disk/part_dos.o
	disk/part_efi.o
	disk/part_iso.o
	drivers/adc/built-in.o
	drivers/ata/built-in.o
	drivers/axi/built-in.o
	drivers/block/blk_legacy.o
	drivers/block/built-in.o
	drivers/board/built-in.o
	drivers/built-in.o
	drivers/crypto/built-in.o
	drivers/crypto/fsl/built-in.o
	drivers/crypto/fsl/sec.o
	drivers/crypto/rsa_mod_exp/built-in.o
	drivers/dfu/built-in.o
	drivers/dma/built-in.o
	drivers/firmware/built-in.o
	drivers/gpio/built-in.o
	drivers/i2c/built-in.o
	drivers/input/built-in.o
	drivers/input/input.o
	drivers/mailbox/built-in.o
	drivers/memory/built-in.o
	drivers/misc/built-in.o
	drivers/mmc/arm_pl180_mmci.o
	drivers/mmc/built-in.o
	drivers/mmc/mmc.o
	drivers/mmc/mmc_legacy.o
	drivers/mmc/mmc_write.o
	drivers/mtd/built-in.o
	drivers/mtd/cfi_flash.o
	drivers/mtd/nand/built-in.o
	drivers/mtd/onenand/built-in.o
	drivers/mtd/spi/built-in.o
	drivers/net/built-in.o
	drivers/net/phy/built-in.o
	drivers/net/smc911x.o
	drivers/pci/built-in.o
	drivers/pcmcia/built-in.o
	drivers/phy/allwinner/built-in.o
	drivers/phy/marvell/built-in.o
	drivers/power/battery/built-in.o
	drivers/power/built-in.o
	drivers/power/domain/built-in.o
	drivers/power/fuel_gauge/built-in.o
	drivers/power/mfd/built-in.o
	drivers/power/pmic/built-in.o
	drivers/power/regulator/built-in.o
	drivers/pwm/built-in.o
	drivers/reset/built-in.o
	drivers/rtc/built-in.o
	drivers/rtc/date.o
	drivers/rtc/rtc-lib.o
	drivers/scsi/built-in.o
	drivers/serial/built-in.o
	drivers/serial/serial.o
	drivers/serial/serial_pl01x.o
	drivers/smem/built-in.o
	drivers/soc/built-in.o
	drivers/sound/built-in.o
	drivers/spi/built-in.o
	drivers/spi/spi.o
	drivers/spmi/built-in.o
	drivers/sysreset/built-in.o
	drivers/thermal/built-in.o
	drivers/tpm/built-in.o
	drivers/usb/common/built-in.o
	drivers/usb/dwc3/built-in.o
	drivers/usb/emul/built-in.o
	drivers/usb/eth/built-in.o
	drivers/usb/gadget/built-in.o
	drivers/usb/gadget/udc/built-in.o
	drivers/usb/host/built-in.o
	drivers/usb/musb-new/built-in.o
	drivers/usb/musb/built-in.o
	drivers/usb/phy/built-in.o
	drivers/usb/ulpi/built-in.o
	drivers/video/bridge/built-in.o
	drivers/video/built-in.o
	drivers/video/sunxi/built-in.o
	drivers/watchdog/built-in.o
	env/attr.o
	env/built-in.o
	env/callback.o
	env/common.o
	env/embedded.o
	env/env.o
	env/flags.o
	env/flash.o
	examples/standalone/hello_world.o
	examples/standalone/libstubs.o
	examples/standalone/smc911x_eeprom.o
	examples/standalone/stubs.o
	fs/built-in.o
	fs/ext4/built-in.o
	fs/ext4/dev.o
	fs/ext4/ext4_common.o
	fs/ext4/ext4fs.o
	fs/fat/built-in.o
	fs/fat/fat.o
	fs/fs.o
	fs/fs_internal.o
	include/config/
	include/generated/
	lib/asm-offsets.s
	lib/built-in.o
	lib/charset.o
	lib/crc16.o
	lib/crc32.o
	lib/crc7.o
	lib/crc8.o
	lib/ctype.o
	lib/display_options.o
	lib/div64.o
	lib/efi_driver/built-in.o
	lib/efi_driver/efi_uclass.o
	lib/efi_loader/built-in.o
	lib/efi_loader/efi_bootmgr.o
	lib/efi_loader/efi_boottime.o
	lib/efi_loader/efi_console.o
	lib/efi_loader/efi_crt0.o
	lib/efi_loader/efi_device_path.o
	lib/efi_loader/efi_device_path_to_text.o
	lib/efi_loader/efi_device_path_utilities.o
	lib/efi_loader/efi_disk.o
	lib/efi_loader/efi_file.o
	lib/efi_loader/efi_image_loader.o
	lib/efi_loader/efi_memory.o
	lib/efi_loader/efi_net.o
	lib/efi_loader/efi_reloc.o
	lib/efi_loader/efi_root_node.o
	lib/efi_loader/efi_runtime.o
	lib/efi_loader/efi_smbios.o
	lib/efi_loader/efi_unicode_collation.o
	lib/efi_loader/efi_variable.o
	lib/efi_loader/efi_watchdog.o
	lib/efi_selftest/built-in.o
	lib/errno.o
	lib/gunzip.o
	lib/hang.o
	lib/hashtable.o
	lib/hexdump.o
	lib/initcall.o
	lib/ldiv.o
	lib/libfdt/built-in.o
	lib/libfdt/fdt.o
	lib/libfdt/fdt_addresses.o
	lib/libfdt/fdt_empty_tree.o
	lib/libfdt/fdt_region.o
	lib/libfdt/fdt_ro.o
	lib/libfdt/fdt_rw.o
	lib/libfdt/fdt_strerror.o
	lib/libfdt/fdt_sw.o
	lib/libfdt/fdt_wip.o
	lib/linux_compat.o
	lib/linux_string.o
	lib/list_sort.o
	lib/lmb.o
	lib/membuff.o
	lib/net_utils.o
	lib/panic.o
	lib/qsort.o
	lib/rc4.o
	lib/slre.o
	lib/smbios.o
	lib/string.o
	lib/strmhz.o
	lib/strto.o
	lib/tables_csum.o
	lib/time.o
	lib/uuid.o
	lib/vsprintf.o
	lib/zlib/built-in.o
	lib/zlib/zlib.o
	net/arp.o
	net/bootp.o
	net/built-in.o
	net/checksum.o
	net/eth_common.o
	net/eth_legacy.o
	net/net.o
	net/ping.o
	net/tftp.o
	scripts/kconfig/conf.o
	scripts/kconfig/zconf.tab.o
	test/built-in.o
	test/dm/built-in.o
	u-boot
	u-boot-nodtb.bin
	u-boot.bin
	u-boot.cfg
	u-boot.cfg.configs
	u-boot.lds
	u-boot.map
	u-boot.srec
	u-boot.sym
二 编译输出 1. 输出文件
u-boot.cfg u-boot.cfg.configs u-boot.lds System.map  u-boot.map u-boot-nodtb.bin u-boot.srec u-boot      u-boot.sym u-boot.bin
2. 入口程序

    方法1,查链接脚本
    $ vi u-boot.lds

      1 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
      2 OUTPUT_ARCH(arm)
      3 ENTRY(_start)
      4 SECTIONS
      5 {
      6  . = 0x00000000;
      7  . = ALIGN(4);
      8  .text :
      9  {
     10   *(.__image_copy_start)
    
    

    $vi System.map

    1 60800000 T __image_copy_start
    2 60800000 T _start
    

    $ 由函数地址反推源码

    ospin@ospin-VirtualBox:~/code/u-boot-2018.11$ arm-linux-gnueabi-addr2line -a 0x60800000  -e u-boot
    0x60800000
    /home/ospin/code/u-boot-2018.11/arch/arm/lib/vectors.S:88
    
    

    根据链接文件,直接定位

    arch/arm/cpu/armv7/start.o
    
三、执行流程

可供参考

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号