7)终于搅?FONT face="Times New Roman">flash的设置部分了,这完全是我个人悟出来的,网上资料好像讲得不是先清楚。 首先介绍一下flash的识别吧,每块flash都有一个id,前部分用来说明生产厂家,后部分用来说明它的容量,类型,位数等。它们的定义是在u-boot-1.1.2/include/flash.h中,就以我的ssts9vf1601为例 #define SST_MANUFACT 0x00BF00BF 这是生产厂家id#define SST_ID_xF1601 0x234B234B 这是它的型号,容量,位数等id#define FLASH_SST160A 0x0046 这个我还说不清楚,有个要注意的问题是像sst160是不能用奇地址的,我做的过程中是把SST160A改成SST1601的,懒得帮它创一个好了,相信你已经找到你的板上所用的flash对应的id号了吧?现在就来谈谈怎么改。 先进入u-boot-1.1.2/board/myboards3c44b0/common/flash.c它里面已经帮SST160A设置好了,我的做法是把SST公司的160A都改成1601,是不是很简单,当然你也可以帮1601再写一分,但是我是个懒人,所以我就样做了^_^ 到这里还有个问题没提到的,就是如果你重新用setenv saveenv 设置了参数,但是复位后会发现怎么没有保存到的(不信你试试看)。其实我是故意留到这里讲的,应该它不会报错,可以说是比较隐秘的问题,所以我故意放到这里来说,以引起你的重视。 解决方法:vi u-boot-1.1.2/board/myboard/common/flash.c找到这个函数:write_buff里面有这句话:#ifdef CONFIG_B2要把B2改了,因为我们的板不叫B2,那叫什么呢?原来是在这里定义的: u-boot-1.1.2/include/configs/myboards3c44b0.h里面有这句话: #define CONFIG_HFRK 你不喜欢HFRK这个名字也行,可以改成别的名字,只不过相应地前面的B2也要改成这个名字而已。 4.后记: 本来是想刚做好的时候写的,但是后来发现有些功能实现不了,所以就停住了笔,等我搞好了以后,又急着去学习uClinux的移植,真的很忙,现在终于抽空把它写完。虽然有些地方还没说清楚(毕竟我对它的了解还不是很深,但我相信在我以后移植系统的过程中会逐步加深对它的了解),我还是希望它能成为最详尽的u-boot移植新手指导,对u-boot移植的初学者起到实质性的作用,这样就不枉我花了这么多的心思来写这个文档。 参考资料:http://blog.21ic.com/more.asp?name=sockit&id=8509我所认为的最有奉献精神,写得最详细的记录,在此表示我深深的敬意! |