FL2440 开发板 更改1G Byte NAND FLASH

前言:

       公司电脑被偷,先前自己的技术资料被洗劫一空,继续不下去,索性下定决心换一块FL2440开发板的NAND FLASH芯片进行开发。NAND FLASH芯片我分别换过四种型号分别是K9F8G08U0M,K9GAG08U0E,H27UAG8T2B,H27U8G8T2BTR,基本上我从51就开始使用NAND FLASH,不过都是SLC类型的,对于MLC类型的FLASH在我使用ARM芯片的时候使用过,只要合理的使用YAFFS2文件系统,其实使用SLC,MLC类型的NAND FLASH都差不多。曾经我也一度认为MLC里面读写不能按照常规读写,很容易出现坏块,在合理使用YAFFS2后,不停的读写数据测试,经过1万多次的测试,发现也挺可靠....

 

以下为使用芯片K9F8G08U0M

 

1:  换过NAND FLASH 后,烧写FL2440提供的BOOTLOAD固件,发现无法启动,串口一点反应都没有。开始以为是芯片没有焊接好,后来仿真发现是NAND FLASH型号不对,所以无法运行。

 

2: 以下为原BOOTLOAD需要修改内容

       1):  修改nand_lowlevel.c文件,里面有读取NAND FLASH的底层函数,这个是必须修改的。

       2):  修改nand.c函数,里面有分区信息,一个分区最小为一个块,要不然擦除分区的时候会把其它分区的内容擦除掉。

       3): 修改2440init.s文件,里面有上电启动操作NAND FLASH需要改为相应的块数据。

       4)  :     注意修改工程的时候你的启动开始地址,源程序开始地址是0x30000000,如果你修改为其它地址的话,在运行用户程序会检测内存,你必须跳过要不然就无法运行成功。并且修改为其它地址后,注意你的MMU设置,一定要设置MMU的分段地址起始,要不然你的程序肯定会跑飞。

 

       我根据U-BOOT里面对NAND FLASH的识别过程把上面三部分关于NAND FLASH读取改为通用类型,根据读ID的后2位数据来识别操作,只要是NAND FLASH都能够正常识别,唯一无法确定的是分区,分区只能分区表位置,然后修改BIN文件里面的数据完成。

 

3:  修改完成后,下载我移植过的U-BOOT 2011-09,以下为截图...

FL2440 开发板 更改1G Byte NAND FLASH_第1张图片

 

 

FL2440 开发板 更改1G Byte NAND FLASH_第2张图片

 


你可能感兴趣的:(测试,Flash,byte)