从Nandflash启动代码

来源:互联网 发布:excel多组数据趋势图 编辑:程序博客网 时间:2024/04/28 03:19
        在我的印象中,Nandflash具有很高的容量,访问方式类似于硬盘这样的块设备,需要有专用的驱动程序,适合于存放数据;而Norflash具有很高的速度,可以象SDRAM一样随机访问,并且可以直接在Norflash中运行程序,但是容量却不能做的很大,适合存放代码。因此我一直理所当然的认为,目标板上必须有Norflash来存放代码(至少用来存放启动代码)。
        但是最近见到一块S3C2410的开发板,板上只有64M的Nandflash,却没有看到Norflash的影子,bootloader是直接下载到Nandflash的第0块的。在网上找了很久也没有找到答案,百思不得其解,猜测S3C2410有了什么“特异功能”,最后在S3C2410的用户手册中找到了答案。
        原来,S3C2410集成了一个Nandflash控制器和一个容量为4KB的SDRAM缓存(称作Steppingstone),能够在系统启动时将Nandflash的前4KB内容拷贝到Steppingstone中,然后将Steppingstone映射到0x0的地址后,从0x0开始启动运行。因此启动代码应该放在Nandflash的前4KB中,并且在启动代码中将主程序从Nandflash拷贝到SDRAM中,拷贝后在SDRAM中运行主程序。
        这样一来,即使没有Norflash,目标板一样的启动。由于Norflash比Nandflash和SDRAM都贵,因此,虽然系统需要的SDRAM的容量增加了,但是整个系统的开发成本还是可以降低不少。
原创粉丝点击