原创 S3C2440开发板中SDRAM \NOR FLASH\ NAND FLASH地址分配

2010-3-15 17:52 3320 5 5 分类: MCU/ 嵌入式

前三篇文章里,我分析了S3C2440SDRAM,NOR FLASH,NAND FLASH的连线。在S3C2440开发板这个系统中,这三种存储芯片的地址是如何分配的呢?


首先看下图:


点击看大图


这是S3C2440的存储器地址分配图,SDARM只能接在BANK6BANK7.从分析SDRAM接线的文章里的SDRAM接线图可以看到,SDRAM接的是ngcs6,也就是接在BANK6,因为选择的SDRAM232Mbyte,总容量是64Mbyte,所以SDRAM的地址范围是


0x3000 0000 --- 0x33ff ffff


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


S<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3C2440OM0,OM1脚决定系统启动模式:


点击看大图


TQ2440开发板的NOR FLASH16bit数据位宽,选择从NOR FLASH启动,所以OM0VDD,OM1VSS,从分析NOR FLASH接线的文章里的接线图可以看到,NOR FLASH接的是ngcs0,也就是接在BANK0.因为选择的NOR FLASH2Mbyte,所以NOR FLASH的地址范围是0x0000 0000 --- 0x001f ffff。上电时,程序会从Norflash中启动,ARM直接取Norflash中的指令运行。


 


最后来看NAND FLASHNAND FLASH 以页为单位读写,要先命令,再给地址,才能读到NAND的数据。NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在8BANK中分配地址。如果S3C2440被配置成从Nand Flash启动, S3C2440Nand Flash控制器有一个特殊的功能,S3C2440上电后,Nand Flash控制器会自动的把Nand Flash上的前4K数据搬移到4K内部SRAM,系统会从起始地址是0x0000 0000的内部SRAM启动。程序员需要完成的工作,是把最核心的启动程序放在Nand Flash的前4K中,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到SDRAM中运行。


 


由于Nand Flash控制器从Nand Flash中搬移到内部RAM的代码是有限的,所以在启动代码的前4K,我们必须完成S3C2440的核心配置以及把启动代码(U-BOOT)剩余部分搬到RAM中运行,至于将2440当做单片机玩裸跑程序的时候,就不要做这样的事情,当代码小于4K的时候,只要下到nand flash中就会被搬运到内部RAM中执行了。


 


不管是从NOR FLASH启动还是从NAND FLASH启动,ARM都是从0x0000 0000地址开始执行的。

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /5 下一条