MINI2440 下对 NandFlash 烧写 和 裸版程序环境搭建初步

最近一直在苦恼于自己编写的NandFlash 裸版驱动不能运行成功,于是重新思考了NandFlash烧写的过程,现总结如下:
我们都知道NandFlash只有8根线,而且是数据命令地址共用的,所以它不可能在S3C2440的地址空间BANK上占用一席之地,即不能用访问内存的方式访问到NandFlash,所以不能用jlink像烧写NorFlash那样烧写,现将我尝试的一套方法总结如下:
1.在NorFlash里烧写好uboot
2.以NorFlash启动,进入uboot
3.通过tftp 命令将事先放在虚拟机服务器上的要烧写到NandFlash中的二进制文件下载到内存中,如tftp 31000000 leds.bin
我们先看看leds.bin中的内容:

4.使用uboot命令擦除并烧写NandFlash:
nand scrub
nand erase 030000
nand write.jffs231000000 0 30000
这里要提到的是,由于擦除了NandFLash会使得原本存储在NandFlash的一些uboot参数擦除了,会使得下次再次启动uboot时,一些网络命令不可用,故要再次配置这些参数。
在用nand dump 0来看看烧写后NandFlash中的内容:

完全一样,说明烧写成功!
5.以NandFlash启动方式重启开发板,
【MINI2440 下对 NandFlash 烧写 和 裸版程序环境搭建初步】SRAM中即为NandFlash前4K的内容,这样就可以执行leds.bin裸版程序定义的功能了。

    推荐阅读