u-boot-2016.11移植到S3C2440之新建一个单板(1)

1、确定单板

下载并解压u-boot-2016.11,查看一下board目录下的这一u-boot版本支持的单板,寻找你的单板或者和你的单板相近的单板。对于S3C2440来说,u-boot没有提供与之相对应的单板支持,但是S3C2410与S3C2440是十分相似的,在u-boot-2016.11\board\samsung目录下有smdk2410的目录,即支持smdk2410开发板,那我们的u-boot也就基于这一开发板来移植修改。

2、配置、编译u-boot

首先就以smdk2410为目标来配置编译一下u-boot-2016.11,建议使用较高版本的交叉工具链,我使用的是arm-linux-gcc-4.3.3。

make smdk2410_config

make

发现编译不能通过,没有指定芯片架构与交叉编译器,在顶层Makefile中添加:

ARCH=arm

CROSS_COMPILE=arm-linux-

再编译就可以编译通过了,我们反汇编一下u-boot,得到反汇编代码用于分析:

arm-linux-objdump -D u-boot > u-boot.dis

3、新建一个S3C2440单板

在board\samsung目录下拷贝smdk2410文件夹为smdk2440,并在include/configs目录下拷贝smdk2410.h为smdk2440.h:

/board/samsung$ cp smdk2410 smdk2440 -rf

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

配置一下看能否配置成功:

make smdk2440_config

报错,缺少对应的默认配置文件。该配置文件在configs目录里,进入该目录拷贝smdk2410_defconfig为smdk2440_defconfig:

cp smdk2410_defconfig smdk2440_defconfig

再执行一下默认配置,便可以执行成功了,再编译一下也可以编译成功了:

make smdk2440_config

make

4、完善单板配置

我们虽然编译通过了,但是肯定还有其他很多地方是依赖于smdk2410目录的。这自然是不可以的,因为我们要的是一个完全独立的单板,我们可以将smdk2410暂时移到别的文件夹去,再配置、编译一下找出这些错误。(我这里是为了保留u-boot支持smdk2410单板的功能,在修改完成之后会移回来,如果不需要,也可以删除smdk2410目录)

sudo mv smdk2410 /tmp

make distclean

make smdk2410_config

make

错误!搜索一下和2410相关的地方,并把相关的地方都修改一下:

grep "2410" * -nR

/board/samsung/smdk2440/中的smdk2410.h改为smdk2440.h,将Kconfig、Makefile文件中的2410替换为2440,再编译,还是不行。smdk2440_defconfig文件路径有问题。将smdk2440_defconfig文件中的2410替换为2440,再编译,提示arch/arm/Kconfig存在问题。修改,仿照2410再添加一段。

还是不能编译成功,还在试图寻找board/samsung/smdk2410/Kconfig。因为只要在arch/arm/Kconfig重定义了开发板的路径,就必须要有对应的文件。所以,可以把之前的smdk2410文件夹拷贝回来,也可以屏蔽掉2410对应的开发板文件路径:

make smdk2440_config

make

然后就可以make smdk2440_config成功,也可以make成功产生bin文件,接下来就进入下一阶段了。



  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值