- 文章链接:JiauZhang-CSDN博客
机器感知
一个专注于SLAM、机器视觉、Linux 等相关技术文章分享的公众号
因为u-boot-2018.05并不支持S3C2440,所以先在以前的版本中寻找我们所需要的代码,我这里以MINI2440为例。详细信息请参考<u-boot-2018.05移植到S3C2440之准备阶段>
之所以想要把u-boot-2018.05移植到S3C2440,主要是想了解一下u-boot的新特性(其实在u-boot-2014.10中就已经引入了)Kconfig,不料在编译的时候提示GCC版本低于6.0,而我用的GCC是4.4.3的,想了想为了编译u-boot还要再自制一个交叉编译器,想想还是算了吧,干脆找个相对较新的且带有Kconfig的u-boot,而且4.4.3的编译器也能支持的版本,于是u-boot版本改为了u-boot-2015.10。
首先是把u-boot-2013.10中的代码copy到u-boot-2015.10中
cp ~/u-boot-2013.10/include/configs/mini2440.h include/configs/mini2440.h
cp ~/u-boot-2013.10/board/friendlyarm/mini2440/mini2440.c board/samsung/mini2440/mini2440.c
cp ~/u-boot-2013.10/board/friendlyarm/mini2440/mini2440.h board/samsung/mini2440/mini2440.h
由于Kconfig的原因,这里需要在mini2440文件夹中添加Kconfig文件
if TARGET_MINI2440
config SYS_BOARD
default "mini2440"
config SYS_VENDOR
default "samsung"
config SYS_SOC
default "s3c24x0"
config SYS_CONFIG_NAME
default "mini2440"
endif
接下来就是修改arch/arm/Kconfig,添加如下代码
config TARGET_MINI2440
bool "Support mini2440"
select CPU_ARM920T
source "board/samsung/mini2440/Kconfig"
另一处需要修改的就是在mini2440.h中添加一个宏定义
#define CONFIG_SYS_GENERIC_BOARD
在configs目录下添加mini2440_defconfig文件
CONFIG_ARM=y
CONFIG_TARGET_MINI2440=y
CONFIG_SYS_PROMPT="u-boot-2015.10 # "
最后,在u-boot-2015.10根目录下输入
make mini2440_defconfig && make
等编译完毕之后就可以看到已经有可以正常运行的u-boot.bin生成了,有一点就是在编译的过程中会出现很多重复定义的警号提示,不过这些都是小case了^_^.