s3c6410存儲器映射
2.內部存儲區(qū)
本文引用地址:http://cafeforensic.com/article/201611/317817.htm(1) 內部ROM 0x0800_0000~0x0BFF_FFFF
(2) 內部SRAM 0x0C00_0000~0x0FFF_FFFF
3.靜態(tài)存儲區(qū) 0x1000_0000~0x3FFF_FFFF
4.動態(tài)存儲區(qū) 0x4000_0000~0x6FFF_FFFF
S3C6410的物理內存分成Memory和Pheriperal兩部分,地址范圍分別為0x0~0x6fffffff和0x7fffffff。系統(tǒng)通過 SPINE總線訪問Memory空間,通過PERI總線訪問Pheriperal空間。而為了適應不同外設的訪問速度,又分別通過AHB總線訪問LCD、 Camera、Accelerator等高速外設,通過APB總線訪問iic、watchdog等低速外設。
3.2內存
Memory,又叫主內存,分為4大區(qū)域,分別是啟動鏡像區(qū)、內部內存區(qū)、靜態(tài)內存區(qū)、動態(tài)內存區(qū)。
啟動鏡像區(qū)物理地址為0x00000000~0x07ffffff,共128MB。這個區(qū)域的作用正如它的名字所述,是用來啟動系統(tǒng)的。但是這個范圍內并沒有實際的存儲介質與之對應,只能在通過OM[4:0]選擇具體的啟動介質后再把相應介質的物理地址映射到這個啟動區(qū),比如說選擇了IROM啟動方式后,就把IROM所占的地址空間映射為0x00000000開始的空間。
內部內存區(qū)物理地址為0x08000000~0x0fffffff,共128MB。這個區(qū)域對應著內部的內存地址,內部的ROM和SRAM都是分布在這個 區(qū)間。其中,0x08000000~0x0bffffff對應著內部ROM,當然實際上內部的ROM也并沒有64MB這么多,只有32KB是有實際存儲介 質的,這32KB是一個只讀區(qū),放的是IROM方式下的啟動代碼,選擇IROM啟動的時候首先運行的 代碼就是這一部分,稱為BL0,這部分代碼由廠家固化。0x0c000000~0x0fffffff對應內部SRAM,實際可用的SRAM按照三星的手冊 是4KB,其實這就是用于nand flash啟動的Steppingstone(但是這個Steppingstone是8KB,這2者似乎有矛盾,不知道是不是我的理解不對)。
靜態(tài)內存區(qū)物理地址為0x10000000~0x3fffffff,共6*128MB。這個區(qū)域用于訪問掛在外部總線上的設備,比如說SRAM、NOR flash、oneNand等。這個區(qū)域被分割為6個bank,每個bank為128MB,數(shù)據(jù)寬度最大支持16bit,每個bank通過 Xm0CS[5:0]來劃定。和S3C2410不 一樣的是,bank2~bank5能映射到nand flash、CF等非線性存儲器,這并不是說可以通過bank2~bank5的地址段就能直接訪問nand flash、CF內部的地址,相反,當映射到這些器件的時候這些bank的地址也不能再使用了,訪問這些非線性存儲器還是得通過Pheriperal空間 的AHB總線進行,和S3C2410中的訪問方式是一樣的。不過有一個特例是,當Xm0CS2被映射到nand flash的時候,Steppingstone的4KB(or 8K?)SRAM被映射到bank2開始的4KB,而在以nand flash方式啟動的時候bank2被映射到0x00000000開始的地方,實際上就是把Steppingstone映射到0x0000000了,這和 S3C2410的情況還是相似的。
動態(tài)內存區(qū)物理地址為0x40000000~0x6fffffff,共3*256MB。其中第一個256MB為保留區(qū),實際使用的動態(tài)內存區(qū)為 0x50000000~0x6fffffff,又分為2個區(qū)間,分別占256MB,可以通過DMC的Xm1CS[1:0]來進行著2個區(qū)間的選擇。這個內 存區(qū)主要是擴展DRAM,最大可以擴展512MB的DRAM。
評論