全部博文(24)
分类: 嵌入式
2012-09-25 09:20:49
简单讲:NAND FLASH相当于计算机的硬盘,适合存储大量数据,但是无法对其进行直接寻址,也就是说,对NAND FLASH的访问需要有专门的NAND FLASH控制器来产生相应的时序;从NAND FLASH启动就相当于从硬盘启动,这里涉及S3S2440内部的Steping Stone的支持,大小4K,上电后会通过硬件逻辑自动复制NAND FLASH前4K的数据到Steping Stone,然后在Steping Stone中执行。通常引导代码会复制 NAND Flash 的内容到 SDRAM 中。通过使用硬件 ECC,有效地检查 NAND Flash 数据。在复制完成的基础上,将在 SDRAM 中执行主程序。
NOR FLASH相当于计算机的内存,但是数据掉电后不丢失,CPU可以对其进行直接寻址,因此可以在NOR FLASH中执行程序。
SDRAM就相当于计算机内存,主要用于执行程序,但是掉电后里面的数据会丢失。NOR FLASH中的数据不会丢失,这是SDRAM与NOR FLASH的主要区别。
启动代码主要是负责对板级硬件的初始化,以及程序代码的搬移等。编写启动代码需要从具体的硬件配置讲起,总结起来主要有中断控制器、内部时钟电路、存储器控制器,一般还需要了解SDRAM的一些参数,此外还需要对NAND FLASH及NAND FLASH控制器有所了解。
S3C2440处理器支持4种启动方式,具体采用哪两种启动方式由系统本身的硬件情况决定,OM1和OM2是S3C2440处理器的两个引脚,可以通过开关来改变引脚的电平值,进而实现不同的启动方式选择。因此,具体启动流程为:上电后检测OM1和OM2的引脚电平,根据不同的电平值来选择具体启动方式,0M[1:0]=01,NOR FLASH启动;0M[1:0]=00 NAND FLASH启动。
启动代码:初学阶段并不需要完完整整地把启动代码写出来,只要能看懂启动代码即可,然后结合自己的理解稍作修改即可。
2440init.s
点击(此处)折叠或打开