u-boot-1.3.4移植到mini2440+128M nand boot(1)
来源:互联网 发布:k中心点文本挖掘java 编辑:程序博客网 时间:2024/04/30 11:23
转载自:http://zjbintsystem.blog.51cto.com/964211/209987
(声明:本文很多步骤和其他网友写的基本一致,我们只关心如何让u-boot支持2K page nand,本项目将分几篇文章进行介绍)
第1 阶段 下载源码
1)、U-boot源码下载地址:ftp://ftp.denx.de/pub/u-boot/里边的u-boot-1.3.4.tar.bz2文件,放到你的开发目录里;
2)、解压文件:tar -jxvf u-boot-1.3.4.tar.bz2;
3)、下载交叉编译工具
http://www.handhelds.org/download/projects/toolchain/,使用3.3.2,如果使用3.4.1的编译u-boot会产生软件浮点的编译错误,建议使用3.3.2编u-boot,用3.4.1编译内核。当然你也可以使用友善之臂http://www.arm9.net/download-arm-linux-gcc-4.3.2.asp的arm-linux-gcc-4.3.2.tgz,这个arm-linux-gcc-4.3.2 with EABI相当不错,可以编译所有的程序;本人就是使用4.3.2。
4)、建立交叉编译环境
首先:#tar xvzf arm-linux-gcc-4.3.2.tgz –C /
注意:C后面有个空格,并且 C是大写的,它是英文单词“Change”的第一个字母,
在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc安装到/usr/loca/arm/4.3.2目录。
然后:把编译器路径加入系统环境变量,运行命令
#vi /root/.bashrc
编辑/root/.bashrc文件,在最后一行 export PATH=$PATH:/usr/local/arm/4.3.2/bin ,保存退出。
最后:重新登录系统(不必重启机器,开始->logout 即可),使以上设置生效。
第2阶段 测试编译环境是否正确
1)、在u-boot-1.3.4/board下找个与2410相似的开发板,这里smdk2410为例。
2)、将u-boot-1.3.4/board/smdk2410目录复制到当前目录下,并改名为mini2440。
3)、把smdk2410.c改名为mini2440.c,修改Makefile中的 COBJS := mini2440.o flash.o,保存。
4)、将u-boot-1.3.4/include/configs/smdk2410.h,复制到当前目录,并改名为mini2440.h。
6)、在u-boot-1.3.4/Makefile中,大概2490多行找到
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
在它下边添加
mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0
(注意@$(MKCONFIG)前面必须是TAB键)
2)、将u-boot-1.3.4/board/smdk2410目录复制到当前目录下,并改名为mini2440。
3)、把smdk2410.c改名为mini2440.c,修改Makefile中的 COBJS := mini2440.o flash.o,保存。
4)、将u-boot-1.3.4/include/configs/smdk2410.h,复制到当前目录,并改名为mini2440.h。
6)、在u-boot-1.3.4/Makefile中,大概2490多行找到
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
在它下边添加
mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0
(注意@$(MKCONFIG)前面必须是TAB键)
7)特别注意: 在u-boot1.3.3及以上版本Makefile有一定的变化,使得对于24x0处理器从nand启动的遇到问题。也就是网上有人说的:无法运行过lowlevel_init。其实这个问题是由于编译器将我们自己添加的用于nandboot的子函数nand_read_ll放到了4K之后造成的(到这不理解的话,请仔细看看24x0处理器nandboot原理)。u-boot根本没有完成自我拷贝,你可以看uboot根目录下的System.map文件就可知道原因。
解决办法其实很简单:
将278行的__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
改为__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))
解决办法其实很简单:
将278行的__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
改为__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))
8)、进入u-boot-1.3.4目录,先来个#make distclean,
然后# make mini2440_config
Configuring for mini2440 board...
9)、之后就可以# make了,如正常编译通过,表明环境搭建好。
然后# make mini2440_config
Configuring for mini2440 board...
9)、之后就可以# make了,如正常编译通过,表明环境搭建好。
- u-boot-1.3.4移植到mini2440+128M nand boot(1)
- u-boot-1.3.4移植到mini2440+128M nand boot(2)
- u-boot-1.3.4移植到mini2440+128M nand boot(3)
- u-boot-1.3.4移植到mini2440+128M nand boot
- u-boot移植到mini2440
- u-boot-1.3.4移植到s3c2440之nand驱动
- u-boot-1.3.4移植到s3c2440之nand驱动
- u-boot-2009.08 移植 mini2440-64M
- u-boot-2009.08 移植 mini2440-64M
- U-boot-2014.04移植到MINI2440(8) nand flash 读写支持移植
- U-boot-2014.04移植到MINI2440(10) 移植nand flash保存环境变量、添加分区
- u-boot移植(Mini2440)
- u-boot移植到mini2440,u-boot版本2008.10
- 原创 u-boot移植到mini2440,u-boot版本2008.10
- u-boot移植到mini2440,u-boot版本2008.10 收藏
- u-boot移植到mini2440,u-boot版本2008.10
- u-boot移植到mini2440,u-boot版本2008.10
- u-boot移植到mini2440,u-boot版本2008.10
- coreldraw x5已停止工作的解决
- THinkPHP中邮件发送
- windows vista系统下android开发环境搭建
- MySQL索引的查看创建和删除
- SOHO一族(在家办公)
- u-boot-1.3.4移植到mini2440+128M nand boot(1)
- 使用/proc实现内核与用户空间通信
- Java反射经典实例
- 程序员的毅力
- 从零开始Android游戏编程(第二版) 第十二章 音乐与音效
- iPhone ebook 中翻页效果(牛人)的实现
- VC++基于微软语音引擎开发语音识别总结
- 程序员的毅力
- Flex4 模拟背景图片切换