xianghuidianzi 发表于 2011-9-29 23:01:13

初学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)

helix 发表于 2011-10-8 14:31:45

MARK,关注下。

sunli_suzhou 发表于 2011-10-8 16:11:53

我学了一阵子S3C2440,1:是将所有程序拷贝到SDRAM里运行的,程序是应该小于SDRAM的容量的(对于128M的SDRAM,我相信你的程序应该没这么大吧);2:如果设置为NAND启动,在上电后NAND控制器自己会将NAND里的前4K拷贝到SRAM里的,这是由硬件自己完成的,不是由软件完成的。

416539886 发表于 2011-10-8 18:36:37

看bootloader技术内幕,里面讲得很详细

exir 发表于 2011-10-9 22:01:33

启动代码肯定是要小于ram的。nand flash启动时,硬件内置了nand flash的驱动。
nand flash容量再大,加载到ram运行的程序也不能大过ram的容量。
pc机上硬盘就相当于这里的nand flash,内存就是ram,内存从来没有大过硬盘过。

虚拟内存就是用来突破这个限制的。

ap0405209 发表于 2011-11-23 18:13:52

MARK,关注下
页: [1]
查看完整版本: 初学S3C2440,问个NAND FLASH 启动的问题