初学S3C2440,问个NAND FLASH 启动的问题
S3C2440,支持 NOR FLASH 和 NAND FLASH 启动。首先:u-boot的程序可以下载在 NOR FLASH 或者 NAND FLASH 上运行。
A)当由硬件配置成 NOR FLASH启动时:
因为 NOR FLASH 可以在片内运行程序,且属于总线型器件,所以,只要接在地址0处,就可以直接运行程序(不知道我理解的对不对,应该对,哈哈)
问题1:当由NOR FLASH启动后,可以把放在 NAND FLASH中的程序(如 OS),拷贝到 SDRAM中去运行,这样的话,那岂不是程序要小于SDRAM的容量了?或者是分布加载,运行到哪加载哪的程序,这个由谁控制啊?
B)当由硬件配置成 NAND FLASH启动时:
S3C2440有个功能是上电后把NAND FLASH的前4k代码拷贝到芯片内部的sram中去运行。
问题2:由于NAND FLASH不是总线型设备,需要编写驱动代码。可上电后,还未运行任何程序,也就是说NAND FLASH的驱动代码也没有运行,那么这前4K是如何读进2440的呢?
(另外:SD卡也属于 NAND FLASH ,是不是可以用SD卡来启动程序?那样的话,容量可就大了去了。好几十个G) MARK,关注下。 我学了一阵子S3C2440,1:是将所有程序拷贝到SDRAM里运行的,程序是应该小于SDRAM的容量的(对于128M的SDRAM,我相信你的程序应该没这么大吧);2:如果设置为NAND启动,在上电后NAND控制器自己会将NAND里的前4K拷贝到SRAM里的,这是由硬件自己完成的,不是由软件完成的。 看bootloader技术内幕,里面讲得很详细 启动代码肯定是要小于ram的。nand flash启动时,硬件内置了nand flash的驱动。
nand flash容量再大,加载到ram运行的程序也不能大过ram的容量。
pc机上硬盘就相当于这里的nand flash,内存就是ram,内存从来没有大过硬盘过。
虚拟内存就是用来突破这个限制的。 MARK,关注下
页:
[1]