当前位置: 技术问答>linux和unix
u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定,小散100
来源: 互联网 发布时间:2016-10-23
本文导语: u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定 芯片:S3C2440(目前大部分的开发板在某个层次上讲是一样的) Nor Flash:SST39VF6401B,64Mbit,封装与原来的2MB(型号一样,后面的是1601B)一样,后面的地址线也连接到了,没有留空 u...
u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定
芯片:S3C2440(目前大部分的开发板在某个层次上讲是一样的)
Nor Flash:SST39VF6401B,64Mbit,封装与原来的2MB(型号一样,后面的是1601B)一样,后面的地址线也连接到了,没有留空
u-boot:2010.09,新版本的目录架构跟以前的有很大不同了。
目标:在Nor Flash上移植Boot Loader、内核、文件系统,Nand Flash的话就reserve for future use吧。
本次实践目的:我也不知为什么,如果要学某种东西的话,很难说清楚为的是什么,不说了,解释不清楚的。
网上有许多教程、资料讲如何移植u-boot到2410、2440的,至于真伪,需要自己亲自实践才知道。这次使用的Nor Flash是8MB,datasheet上是64Mbit,这回大方了,估计能装很多东西,根据以往经验,内核2MB左右,u-boot上不了多少的,其它的留给根文件系统,根文件系统要尽可能精简,能不要的就不要。换掉原来的Nor Flash以后,实然想到开发板可能会支持那么大的Nor,或者封装不会相同?经过看原理图,看datasheet,研究好一会,才放下心来,原来,一切都在人家掌握之中了,我白担心十几分钟了。这次看datasheet比较认真,对两个Nor Flash的型号、特性、指令等等有一定的了解,比如,6401跟6402有一点不同,6401B跟6401B的ID号不同,6401B跟1601的erase、program指令不同——好像是废话,但在修改代码时要很注意,而且要保持大脑清醒,我将每个步骤作简单的笔记,生怕一不小心忘了个什么操作,想找也找不回来了。
经过几天的奋斗,u-boot终于能识别新的芯片,擦除flash、保存环境变量等等都没问题——经测试,保存环境变量那个地址最好往后一点点,不要太靠前了,因为u-boot将来会有多大,很难说,这个可以使用md命令来查看。
下一步目标是调用函数点灯,u-boot启动时调用了两个点灯函数,初步看有点复杂,鉴于能力问题,这个步骤的结果是未知的。
上述讲那么多,估计也没几个人会看。现说明几点:
1、看datasheet的水平虽然不高,但对那些英文没有了恐惧,也算是巩固专业英语吧。
2、这次还是参考网上的资料,这是必需的。
3、flash部分代码参考./board/dave下面的两个flash.c,不使用原来的flash.c。
4、对u-boot理解又深刻一点了,看代码时候,似乎又回到以前那个美好时光了。——看代码其实很有乐趣的。
5、本次实践肯定会有笔记(不太想说“文档”),不过这是很后面的事情了,目前暂时不考虑。
6、本文略去很多相关背景,原因不想说,同样解释不清楚。
分不多,大家见谅。
搞出点灯就结贴,但是,搞不出还是要结贴的。
最后,祝大家周末愉快。
|
都是强人
|
|
接分
|
学习一下,不错
|
|
楼主很强,我最近也在做UBOOT的裁剪,我的uboot 150多K,觉得还是有点大,终极目标80k,呵呵!
|
|
|
恩,每天都在进步
|
|
|
LZ成长很快。。。
还记得很久前LZ发帖。
还记得很久前LZ发帖。