歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> S3C2440的存儲器映射(27根地址線如何尋找1G的地址)

S3C2440的存儲器映射(27根地址線如何尋找1G的地址)

日期:2017/3/1 11:08:41   编辑:Linux編程
查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特殊功能寄存器地址的深入挖掘》。http://www.linuxidc.com/Linux/2011-11/46480.htm

Copyright © Linux教程網 All Rights Reserved