uboot基础 配置编译uboot

注意uboot的体系结构目录树:其中能够找到支持的开发板和cpu等信息。

    uboot1.1.6/board/samsung/smdk6410  

    uboot1.1.6/cpu


步骤:

    1、tar xzf uboot1.1.6-2012-09-25.tar.gz

    2、make clean

    3、make forlinx_nand_ram256_config  //make编译的目标位forlinx_nand_ram256_config,表示选择的board是forlinx_nand_ram256,forlinx_nand_ram256_config这个目标可以在uboot1.1.6顶层目录下的Makefile中找到;

    4、make

    5、uboot编译大概需要几分钟,编译完后产生的uboot.bin映像文件位于当前目录下;


说明:Makefile中   

    forlinx_nand_ram256_config :  unconfig

            @$(MKCONFIG) smdk6410 arm s3c64xx smdk6410 samsung s3c6410 NAND ram256

    unconfig:

            @rm -f $(obj)include/config.h $(obj)include/config.mk \

                    $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp 


    

    ifeq ($(OBJTREE)/include/config.mk,$(wildcard $(OBJTREE)/include/config.mk))


    # load ARCH, BOARD, and CPU configuration

    include $(OBJTREE)/include/config.mk

    export  ARCH CPU BOARD VENDOR SOC


    ifndef CROSS_COMPILE

    ifeq ($(HOSTARCH),ppc)

    CROSS_COMPILE =

    else

    ifeq ($(ARCH),ppc)

    CROSS_COMPILE = powerpc-linux-

    endif

    ifeq ($(ARCH),arm)                //根据ARCH变量,指定编译器前缀

    CROSS_COMPILE = arm-linux-

    endif

    ifeq ($(ARCH),i386)

    ifeq ($(HOSTARCH),i386)

    CROSS_COMPILE =

    else

    CROSS_COMPILE = i386-linux-

    endif

    endif

    ifeq ($(ARCH),mips)


    先执行unconfig清除上一次执行make forlinx_nand_ram256_config时产生的头文件include/config.h和Makefile包含文件                    include/config.mk;

    后执行@$(MKCONFIG) smdk6410 arm s3c64xx smdk6410 samsung s3c6410 NAND ram256,MKCONFIG是顶层目录下的mkconfig脚本文件,后面6个是传入的参数;

    mkconfig:     

    ram256)

        echo "#define FORLINX_BOOT_RAM256" >> config.h

         > ../board/samsung/smdk6410/config.mk # clear file context

        echo "ifndef TEXT_BASE"  >> ../board/samsung/smdk6410/config.mk

        if [ ${SETMMU} = "yes" ]

        then

         echo "TEXT_BASE = 0xCFE00000" >> ../board/samsung/smdk6410/config.mk

        else

         echo "TEXT_BASE = 0x5FE00000" >> ../board/samsung/smdk6410/config.mk

        fi

        echo "endif" >> ../board/samsung/smdk6410/config.mk

        ;;

    include/config.h:

            /*Automatically generated - do not edit */

            #define FORLINX_BOOT_NAND

            #define FORLINX_BOOT_RAM256

            #include <configs/smdk6410.h>

    include/config.mk:           

            ARCH   = arm

            CPU    = s3c64xx

            BOARD  = smdk6410

            VENDOR = samsung

            SOC    = s3c6410

总结:

    编译流程就是通过执行一个make forlinx_nand_ram256_config命令传入ARCH、CPU、BOARD、SOC参数、mkconfig根据参数将include文件夹中相应的头文件夹连接好,生成config.h;

    然后执行make命令分别调用各子目录的makefile命令生成所有的obj文件和obj库文件*.a;

    最后连接所有的目标文件,生成镜像。


http://hi.baidu.com/xxbing8/item/71021e1220800c7c7b5f25e9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hi3536uboot是海思公司(Hisilicon)的一款基于ARM架构的嵌入式开发板使用的启动引导程序。要配置编译hi3536uboot,需要按照以下步骤进行: 1. 下载并安装交叉编译工具链:在海思官方网站上下载适用于hi3536uboot的交叉编译工具链,并将其解压到合适的目录中。然后将该目录添加到系统环境变量中,以便在命令行中可以直接使用交叉编译命令。 2. 获取hi3536uboot源码:从海思官方网站上下载最新版本的hi3536uboot源码,并将其解压到工作目录中。 3. 配置编译选项:进入hi3536uboot源码目录,在命令行中执行"make menuconfig"命令。这将打开一个菜单配置界面,用于选择编译选项。根据实际需求进行配置,例如选择启动方式、设备驱动支持等。 4. 进行编译:在命令行中执行"make"命令,开始编译hi3536uboot编译过程可能需要一段时间,视电脑性能和源码大小而定。 5. 生成uboot镜像文件:编译完成后,将生成的uboot镜像文件保存到合适的位置。通常情况下,uboot镜像文件的名称为"u-boot.bin"。 6. 烧录uboot镜像文件:将生成的uboot镜像文件通过JTAG或串口等方式烧录到hi3536开发板上。确保开发板电源正常供电,并按照官方文档或板载接口定义正确连接烧录工具。 7. 验证uboot功能:烧录完成后,重启hi3536开发板,并使用串口终端连接到开发板。通过终端界面可以验证uboot的功能和正确性,例如执行命令、加载内核等。 配置编译hi3536uboot需要一定的嵌入式开发和Linux系统操作经验,同时需要参考海思官方提供的文档和资料。以上步骤仅为简要介绍,具体操作可能会因个人环境和需求而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值