S3C2440的存储器映射(27根地址线如何寻找1G的地址)

原帖:http://blog.csdn.net/ce123/article/details/6882091

查S3C2440的数据手册可知S3C2440可寻址1G的地址范围,但是S3C2440的地址线只有27根,理论上只能寻址2的27次方等于128M的地址范围。

 

           通过细致的分析可知:S3C2440通过一个BANK来解决了这个问题。S3C2440有8个存储器BANK,引出了8根BANK线(对应nGCS0~ nGCS7),通过这个8根线来选通和关闭不同的存储器,这样S3C2440最多就可以连接8个128M的存储器。对某个BANK地址的访问实际上就是选通该BANK,于是ARM核只要发出一个地址,然后S3C2440的储存控制器把该地址解释成两部分:一部分是BANK地址,一部分是连接到该BANK存储器内部的地址就可以访问了。而作为32位的CPU,理论上可以使用的地址范围可以达到2的32次方等于4G,除去上述的1G地址空间,还有一部分是CPU内部寄存器的地址,剩下的地址空间没有使用。


图1 S3C2440的存储器映射

0x4000 0000以后的地址是怎样映射的呢?

0x4000 0000——0x4000 0FFF            从NOR Flash启动时片内4KB SRAM映射在这个地址范围,而从NAND启动时片内4KB SRAM映射在0x0000 0000地址,则这个地                                                                址范围是保留的。

0x4000 0FFF——0x4800 0000            保留

0x4800 0000——0x6000 0000             特殊功能寄存器的地址

0x6000 0000——0xFFFF FFFF           未用

具体这些地址是如何映射的,可以参考我写的另一篇博文《对S3C2440特殊功能寄存器地址的深入挖掘》。

原文地址:https://www.cnblogs.com/pxshin/p/2934460.html