一、配置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/目录下发生的