u-boot配置阶段分析
Posted 海~洋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了u-boot配置阶段分析相关的知识,希望对你有一定的参考价值。
时间 :2016年4月3日08:19:35
地点 :宿舍。
功能 :分析u-boot的配置过程。(以开发板smdk2410为例)
一、编译u-boot的步骤:
1、在u-boot的顶层目录下,执行"make smdk2410_config"
2、在u-boot的顶层目录下,执行"make all"或"make"
二、编译步骤的分析:
分析"make smdk2410_config"
1、执行"make smdk2410_config"时,其实是执行./mkconfig smdk2410 arm arm arm920t NULL s3c24x0
因为在Makefile里有一句:
smdk2400_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 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 = 100ask24x0
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/100ask24x0.h>
至此,顶层mkconfig文件已经分析完毕,除了确定BOARD_NAME=smdk2410外,其余的动作都是在include/目录下发生的。
以上是关于u-boot配置阶段分析的主要内容,如果未能解决你的问题,请参考以下文章