zoukankan      html  css  js  c++  java
  • u-boot顶层Makefile

    u-boot的配置、编译过程:

    1、cd /work/system/u-boot-1.1.6

    2、patch -p1 <../u-boot-1.1.6_jz2440.patch 打补丁

    3、make 100ask24x0_config 配置u-boot

    4、make

    ① 为了分析上述的命令过程,需要参考u-boot文件下的Makefile文件 搜索 “100ask24x0_config”

     分析上面的命令,需要知道各个部分是什么意思,搜索"MKCONFIG“:

     可以知道 ”MKCONFIG“ 就是指mkconfig

    所以在上面配置中键入命令 make 100ask24x0_config,所表示的意思就是

    mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0

    所以为了分析上面的命令是什么意思,需要去分析u-boot文件下的mkconfig文件。

    ② 在mkconfig文件中

    mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0 分别对应着

       $0               $1            $2     $3           $4               $5       $6

     

     

     

     

     

     

     

     

     ③ mkconfig文件分析完成,也就是u-boot的配置过程结束,所以下面就要分析顶层目录下的Makefile,来分析 make 命令发生了什么。

    在顶层makefile文件中可以看到,包含了上面配置的文件config.mk

    配置交叉编译工具链

     一堆链接库

    make的目标 all后的所有东西

     

    我们的目标u-boot.bin需要先生成 u-boot文件 u-boot文件就是u-boot.elf文件(二进制文件)

     

     而u-boot文件需要用到下面的命令:

     其中 LDFLAGS 表示链接文件:在ubuntu中搜索可以查到 :grep "LDFLAGS" * -nR

     

     所以继续搜索TEXT_BASE : grep "TEXT_BASE" *-nR

     

     

    可以看出,u-boot的链接地址是在0x33F80000

    为了分析方便,可以直接在ubuntu中键入 make ,然后再反推下面命令的意思

     

     从上面的输出结果分析一波:

     链接文件时 /work/system/u-boot-1.1.6/board/100ask24x0/u-boot.lds

    第一个执行的文件是 cpu/arm920t/start.S

     所以下面的任务就是从第一个文件 start.S中开始。

  • 相关阅读:
    未能导入activex控件,请确保它正确注册
    【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
    回调函数
    struct--------构造函数对结构体初始化的影响
    调用约定
    HDU 4923 Room and Moor
    Codeforces 260 C. Boredom
    Codeforces 260 B. Fedya and Maths
    Codeforces 260 A
    HNU 12888 Encryption(map容器)
  • 原文地址:https://www.cnblogs.com/lihanrui/p/13896104.html
Copyright © 2011-2022 走看看