uboot总结:uboot配置和启动过程1(主Makefile分析)

说明:文件位置:在uboot的目录下,文件名为:Makefile

从文件的头部开始分析

1、24-29行,配置uboot的版本信息。

VERSION = 1
PATCHLEVEL = 3
SUBLEVEL = 4
EXTRAVERSION =
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = $(obj)include/version_autogenerated.h

2、主机的环境信息(比如:我现在是虚拟机的Ubuntu10.04下开发的,就是i686,linux。)

3、配置为静默编译的设置(使用方法:make -s;这个-s会作为MAKEFLAG传个Makefile,下面的XECHO就会变成空)

4、是否配置为当独输出文件夹方式编译(使用方法:make -0=输出目录)

5、设置目标路径、源文件路劲、顶层目录、连接目录。并导出为环境变量

6、调用mkconfig配置脚本(文件就在uboot下,后续会进一步分析这个脚本)

7、加载include目录下的config.mk文件,里面的信息是ARCH/CPU/BOARD/VENDOR/SOC。这个文件是在配置过程中产生的(make x210_sd_config)。

举例:我们的配置就是arm s5pc11x samsung s5pc110

补充:配置过程的代码

8、配置交叉编译工具链(部分代码)

9、调用配置config.mk文件(config.mk是一个makefile,进行一些配置,后续后进一步分析)

10、后面剩下就是Makefile的主要编译的一些东西

总结:分析主Makefile不能孤立的分析,因为里面有调用其它的文件(mkconfig、config.mk)。首先在框架上分析,对主Makefile有一个大概的了解,然后再去具体的分析和查找里面的文件和变量。

时间: 2024-08-18 05:30:44

uboot总结:uboot配置和启动过程1(主Makefile分析)的相关文章

uboot总结:uboot配置和启动过程2(mkconfig分析)

说明:文件位置:在uboot的目录下,文件名为:mkconfig.本身是一个脚本文件. 它的主要作用的是: (1)创建一个重要的符号链接 (2)创建一个config.mk文件(在include目录下) (3)创建一个config.h文件(在include目录下) 下面会截距一部分重要的代码来分析 1.首先要明白一个参数($1.$2.$3.$4.$5),这是传参 (1)@$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110 这个是在主

uboot主Makefile分析(t配置和编译过程详解)

1.编译uboot前需要三次make make distcleanmake x210_sd_configmake -j4 make distclean为清楚dist文件. make x210_sd_config  跳转执行mkconfig用来配置并生成config.mk(board/samsung/x210目录下为指定链接地址的与主uboot目录的config.mk不同) autuconfig.mk 2.框图 3.uboot主Makefile分析 3.1.uboot version确定(Make

CentOS6启动过程超详解分析

CentOS 6 开机流程--linux由kernel和rootfs组成.kernel负责进程管理.内存管理.网络管理.驱动程序.文件系统.安全等;rootfs由程序和glibc组成,完善操作系统的功能.同时linux内核的特点是模块化,通过对模块装载卸载可以对内核功能自定义.linux内核文件:/boot/vmlinuz-2.6.32-696.el6.x86_64 整体的流程 BIOS/开机自检 MBR引导(Boot Loader) 启动内核 启动第一个进程init 一.BIOS/开机自检 1

Android应用程序启动过程——Launcher源码分析

当我们在Launcher界面单击一个应用程序图标时就会启动一个程序,那这一个过程究竟发生了些哪样呢?让我们跟踪Launcher源码来分析一下吧. 先上流程图: step1.追踪Launcher  从源码中我们可以发现Launcher其实也是一个程序,它继承于Activity.找到该文件中的onCreate()方法,代码片段如下: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

u_boot启动过程中的具体分析(1)

闭上眼睛,细致的回顾一下从NAND FLASH 启动的整个流程,首先,当我们打开板子的时候,先执行的就是嵌入在芯片上的iROM,它的作用就是为了把.NAND Flash 中的bootloader的一部分代码复制到芯片上面的sRAM中,之后,程序在sRAM中执行,它的主要任务就是初始化我们的内存.时钟,以及存储设备,当然更重要的就是从存储设备NAND Flash上拷贝剩下的bootloader到我们的内存的相关位置,之后,执行接下来的bootloader程序,载入执行我们的OS,以及挂在根文件系统

uboot移植之主Makefile分析

1:#uboot 的版本号 VERSION      = 1                        #主版本号 PATCHLEVEL   = 3                   #次版本号 SUBLEVEL     = 4                     #再次版本号 EXTRAVERSION =                     #关于uboo的一些另外的描述 #变量U_BOOT_VERSION用来保存uboot的版本信息 U_BOOT_VERSION = $(VER

2.4、uboot配置和编译过程详解

2.4.1.uboot主Makefile分析1 2.4.1.1.uboot version分析 (1)uboot版本号分为3个级别: VERSION:主版本号 PATCHLEVEL:次版本号 SUBLEVEL:再次版本号 EXTRAVERSION:另外附加的版本信息 这四个用.隔开共同构成了最终的版本号. (2)Makefile中版本号最终生成了一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号 (3)include/version_autogenerated.h

uboot配置和编译过程详解【转】

本文转载自:http://blog.csdn.net/czg13548930186/article/details/53434566 uboot主Makefile分析1 1.uboot version确定(Makefile的24-29行) Makefile代码部分: [plain] view plain copy VERSION = 1 PATCHLEVEL = 30 SUBLEVEL = 4 EXTRAVERSION = U_BOOT_VERSION = $(VERSION).$(PATCHL

uboot配置和编译过程详解

一.uboot主Makefile分析 1.uboot version确定(Makefile的24-29行) include/version_autogenerated.h文件是编译过程中自动生成的一个文件,所以源目录中没有,但是编译过后的uboot中就有了 2.HOSTARCH和HOSTOS HOSTARCH:表示主机的CPU的架构,值会影响后面的CROSS_COMPILE环境变量的值.HOSTOS:主机 3.静默编译(50-54行) 不希望看到这些编译信息,就后台编译即可.这就叫静默编译. 4