make smdk2410_config流程分析

来源:互联网 发布:淘宝app的开发 编辑:程序博客网 时间:2024/05/21 17:50


一、配置u-boot
1、在u-boot的顶层目录下,执行"make smdk2410_config"

二、配置步骤的分析:

分析"make smdk2410_config"

1、执行"时"make smdk2410_config,其实是执行./mkconfig smdk2410 arm arm920t smdk2400 NULL s3c24x0(这些参数在顶层makefile中有)

因为在顶层Makefile里有一句:
smdk2410_config : unconfig
  @$(MKCONFIG) $(@:_config=) arm  arm920t   smdk2410  NULL        s3c24x0
  (mkconfig)        (目标)            (架构) (cpu)       (开发板)     (VENDOR)  (SoC)
     $0                    $1                $2      $3           $4             $5             $6
在顶层目录下的mkconfig中找到了mkconfig后面所接的参数的含义:
Parameters(参数): Target Architecture CPU Board [VENDOR] [SOC]

2、因为实际上是执行了./mkconfig smdk2410 arm arm arm920t NULL s3c24x0,所以转而要分
析顶层目录下的mkconfig文件了。


三、分析mkconfig文件

1、确定一个参数BOARD_NAME=smdk2410
2、cd ./include(进入include目录,以下动作都是基于include/目录)。
3、rm -f asm; ln -s asm-arm asm(首先删除原来的asm文件,接着再新建asm连接文件,指向./asm-arm/目录,这样以后的#include <arm/xxx>,实际上就是#include <asm-arm/xxx>。 #include <>一般是指包含include下的目录或文件)。
4、rm -f asm-arm/arch; ln -s arch-s3c24x0 asm-arm/arch(首先删除./asm-arm/目录下的arch文件,接着新建./asm-arm/arch文件,让它指向./asm-arm/arch-s3c24x0/目录,这样以后的#include <arm/arch/xxx>,实际上就是#include <asm-arm/arch-s3c24x0/xxx>。arch文件和arch-s3c24x0都在include/asm-arm/目录下。)
5、rm -f asm-arm/proc; ln -s proc-armv asm-arm/proc(同理,建立一个proc连接文件指向proc-armv目录)

>表示新建,>>表示追加
6、echo "ARCH = $2" > config.mk
    echo "CPU = $3" >> config.mk
  echo "BOARD = $4" >> config.mk
  echo "SOC = $6" >> config.mk
新建一个include/config.mk文件,里面的信息为:
ARCH = arm
CPU = arm920t
BOARD = smdk2400
SOC = s3c24x0
7、> config.h
    echo "/* Automatically generated - do not edit */" >>config.h
    echo "#include <configs/$1.h>" >>config.h
新建一个include/config.h文件,里面的内容为:
/* Automatically generated - do not edit */
#include <configs/smdk2410.h>


至此,顶层mkconfig文件已经分析完毕,除了确定BOARD_NAME=smdk2410外,其余的动作都是在include/目录下发生的

0 0
原创粉丝点击