u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定,小散100

李迟
博客专家认证
2010-11-07 01:03:34

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、本文略去很多相关背景,原因不想说,同样解释不清楚。


分不多,大家见谅。
搞出点灯就结贴,但是,搞不出还是要结贴的。
最后,祝大家周末愉快。
...全文
323 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
laoshizhuce 2010-12-02
  • 打赏
  • 举报
回复
看错标题了

以为是楼主移植了Ubuntu
谭海燕 2010-11-09
  • 打赏
  • 举报
回复
LZ成长很快。。。


还记得很久前LZ发帖。
李迟 2010-11-09
  • 打赏
  • 举报
回复
点灯基本完成。
1、本来想使用start.S文件调用的red_LED_on等等函数实现点灯,但捣鼓很久,依然不行,初步估计是weak链接造成的,功力不够,对此没有深入研究。此问题留待以后再实现。
2、在start.S中使用汇编代码点灯,很轻松实现,但boss说这样很不好,自己想了想,也是不好,此方法放弃。
3、将点灯作用u-boot的自定义命令,在shell中执行点灯命令,顺便学习一下如何添加自定义命令,此方法今天测试通过,但点灯那个程序有bug,从LED1开始,一切正常,反正不正常,初步估计是移位造成,在u-boot中添加代码文件很复杂,一不小心就搞乱人家的框架。

无论如何,总算对自己有个交待。

明天上班结贴。
充电宝111 2010-11-08
  • 打赏
  • 举报
回复
恩,每天都在进步
freefei 2010-11-08
  • 打赏
  • 举报
回复
hmg25 2010-11-07
  • 打赏
  • 举报
回复
接分
李迟 2010-11-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 w5870131 的回复:]
楼主很强,我最近也在做UBOOT的裁剪,我的uboot 150多K,觉得还是有点大,终极目标80k,呵呵!
[/Quote]

现在我还不确定这个u-boot.bin到底会有多大,慢慢一步一步来。
哥特de忧伤 2010-11-07
  • 打赏
  • 举报
回复
楼主很强,我最近也在做UBOOT的裁剪,我的uboot 150多K,觉得还是有点大,终极目标80k,呵呵!
freetstar 2010-11-07
  • 打赏
  • 举报
回复
steptodream 2010-11-07
  • 打赏
  • 举报
回复
都是强人
tripret 2010-11-07
  • 打赏
  • 举报
回复
伴儿 2010-11-07
  • 打赏
  • 举报
回复
学习一下,不错

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧