标题:S3C2440处理器nandflash启动中的“SteppingStone”疑问
嵌入式的学习面广切碎,刚开始啥都不懂,学着学着感觉很多都会了,但是有时间回过头来再细分析一些事情的时候,发现还是没有搞明白一些很底层的东西。今天我就来说说自己的疑问点,也希望知道的朋友帮帮忙!
问题描述:
1. 只讨论s3c2440的nandflash启动。
2.根据datasheet介绍,当2440选择从nandflash启动时,系统会自动的将nandflash的前4K代码拷贝到2440内部的“SteppingStone”即内部的SRAM(4K),此时内部的SRAM映射到地址0X0000 0000.
问题:这个自动的过程是怎样实现的?
对于上述问题自己目前的理解:
1. 首先自己对这个拷贝过程以及程序运行非常明白。
2.虽然在系统上电后,根据硬件NCON0、GPG13~15可以确定nandflash的一些页大小、数据位宽等参数,但是nandflash控制器是怎样自动的把前4K的数据就拷贝到了内部的SRAM中。(既然是拷贝肯定存在数据的传输,这个过程是怎样进行的?)
难道nandflash控制器只根据NCON0、GPG13~15的配置就可以从外接的nandflash芯片里面读取数据到2440内部的SRAM吗?如果这样,我们在后面的nandflash驱动代码中的对nandflash的读、写操作是否可以借鉴自动拷贝的功能进行实现,会不会简单些?
3.nandflash的本身特点读取数据时会出现位翻转,但是在系统上电后nandflash启动时ECC是没有启动的,那么如果在前4K代码拷贝中的关键数据出现问题,造成系统启动失败(虽然概率较小)怎样解决?
请知道的朋友解答! |