u-boot-2014.04移植FL2440(uboot编译编)

时间:2022-07-06 17:14:29

uboot移植FL2440(uboot编译编)

1.下载u-boot

ftp://ftp.denx.de/pub/u-boot/下载u-boot-2014.04.tar.bz2版本uboot。


2.解压u-boot


3.在u-boot中添加我的开发板信

vim  boards.cfg

根据smdk2410格式添加smdk2440

# Status, Arch, CPU:SPLCPU, SoC, Vendor, Board name, Target, Options, Maintainers

Active  arm         arm920t        s3c24x0     samsung         -                   smdk2440                             -       


4.通过复制的方式添加我的开发板头文件

cp include/configs/smdk2410.h include/configs/smdk2440.h


5.通过复制的方式添加我的开发板文件夹

cp –r board/samsung/smdk2410 board/samsung/smdk2440

更改文件名

mv board/samsung/smdk2440/smdk2410.c board/samsung/smdk2440/smdk2440.c

修改Makefile文件

vim board/samsung/smdk2440/Makefile为:

# SPDX-License-Identifier: GPL-2.0+
#

obj-y := smdk2440.o
obj-y += lowlevel_init.o


6. 修改vim include/configs/smdk2440.h文件内容为:

//#define CONFIG_S3C2410  /* specifically a SAMSUNG S3C2410 SoC */
//#define CONFIG_SMDK2410  /* on a SAMSUNG SMDK2410 Board */
#define CONFIG_S3C2440
#define CONFIG_SMDK2440

注释掉

//#define CONFIG_CMD_NAND

//#define CONFIG_YAFFS2
2个宏,不编译nandflish ,yaffs2文件系统.


7.编译

make   distclean

make   smdk2440_config

make CROSS_COMPILE=arm-linux- (编译用arm-linux-gcc 4.4.3版本,arm-Linux-gcc 4.4.3 在友善之臂官网下载.)

      

 如果上述过程没有出错的话,会在u-boot的目录下出现新的u-boot.bin文件。


补充:make smdk2440_config执过程 。

首先进行配制

make smdk2440_config

现分析这个配制过程,make smdk2440_config之后,make实现执行的是

smdk2440_config : unconfig
    @$(MKCONFIG) $(@:_config=) arm arm920t smdk2440 samsung s3c24x0

MKCONFIG 为顶层的mkconfig脚本,$(@:_config=))是smdk2440_config去除_config,上面的意思是把下面的参数传递给mkconfig

mkconfig smdk2440 arm arm920t smdk2440 samsung s3c24x0
     $0      $1       $2   $3      $4        $5      $6

 

执行的结果是:

1、在include目录下建立如下链接文件:

asm -> asm-arm

asm/arch -> arch-s3c24x0

asm/proc -> proc-armv


2、在include目录下建立如下配制文件:

config.mk 的内容为:

ARCH   = arm
CPU    = arm920t
BOARD  = smdk2440
VENDOR = samsung
SOC    = s3c24x0


3、在include目录下建立如下头文件:

config.h的内容为:

/* Automatically generated - do not edit */
#define CONFIG_SYS_ARCH  "arm"
#define CONFIG_SYS_CPU   "arm920t"
#define CONFIG_SYS_BOARD "smdk2440"
#define CONFIG_SYS_VENDOR "samsung"
#define CONFIG_SYS_SOC    "s3c24x0"
#define CONFIG_BOARDDIR board/samsung/smdk2440
#include <config_cmd_defaults.h>
#include <config_defaults.h>
#include <configs/smdk2440.h>
#include <asm/config.h>
#include <config_fallbacks.h>
#include <config_uncmd_spl.h>