尽管TQ2440开发板已经自带了一个功能完善的UBOOT,但因为第一次接触UBOOT,还是希望自己能亲自动手移植一次,这样才有提高。
网上可以找到很多关于UBOOT在S3C2440上移植的教程,按着教程一步一步的做就能实现基本的移植。不过即便是按着教程做,也遇到了不少问题,需要自己解决。
这次移植UBOOT的主要目的是弄清楚UBOOT的基本结构,因此不关注对底层驱动的实现细节,代码从别处复制过来修改即可。现将大致步骤的总结一下:
1.下载UBOOT 地址 ftp://ftp.denx.de/pub/u-boot/, 版本是2010.06。
2.删除多余文件: 删除arch目录下除arm目录以外的所有目录 删除arm\cpu目录下除arm920tmulu以外的所有目录 删除arch\arm\cpu\arm920t录下除s3c24x0目录以外的所有目录(该目录下的文件不要删) 删除arch\arm\include\asm目录下除arch‐s3c24x0目录以外的所有arch‐xxxx目录(该目录下的文件不要删) 删除board目录下除samsung目录以外的所有目录,board\samsung目录下除smdk2410目录以外的所有目录 删除include\configs目录下除smdk2410.h文件以外的所有头文件
3.(1) 在Board\samsung\下复制smdk2410文件夹为TQ2440,并进入此文件夹 修改smdk2410.c文件名为TQ2440.c,修改MAKEFILE中对应的目标文件名 (2) 在include\configs下建立TQ2440.h文件(复制smdk2410.h得到) (3) 修改根目录下的MAKEFILE,增加TQ2440项: TQ2440_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0 选择编译器,把CROSS_COMPILE处改为: ifeq ($(HOSTARCH),$(ARCH)) CROSS_COMPILE ?=arm-linux- endif
4.编译: make clean (清除编译产生的文件,比如.o文件) make TQ2440_config(生成配置相关的文件) make (编译出u-boot.bin文件)
至此,修改后的UBOOT可以成功编译,但是还不能运行,需要对时钟、SDRAM等初始化代码进行修改。
转载于:https://www.cnblogs.com/Ilmen/p/3577554.html
相关资源:JAVA上百实例源码以及开源项目