深入理解ARM體系架構(S3C6410)---S3C6410存儲映射
Memory:
(1)啟動鏡像區物理地址為0x00000000~0x07ffffff,共128MB,是用來啟動系統的。但是這個范圍內并沒有實際的存儲介質與之對應,只能在通過OM[4:0]選擇具體的啟動介質后再把相應介質的物理地址映射到這個啟動區,比如說選擇了IROM 啟動方式后,就把IROM所占的地址空間映射為0x00000000開始的空間。引導鏡像區反映一個鏡像,這個鏡像指向內存的一部分區域或者靜態存儲區。引導鏡像的開始地址是0x0000_0000。
(2)內部內存區物理地址為0x08000000~0x0fffffff,共128MB。這個區域對應著內部的內存地址,內部的ROM和SRAM都是分布在這個區間。其中,0x08000000~0x0bffffff對應著內部ROM,當然實際上內部的ROM也并沒有64MB這么多,只有32KB是有實際存儲介質的,這32KB是一個只讀區,放的是IROM方式下的啟動代碼,選擇IROM啟動的時候首先運行的代碼就是這一部分,稱為BL0,這部分代碼由廠家固化。0x0c000000~0x0fffffff對應內部SRAM,可讀可寫,當NAND 閃存啟動被選擇時能映射到引導鏡像區。
(3)靜態內存區物理地址為0x10000000~0x3fffffff,共6*128MB。這個區域用于訪問掛在外部總線上的設備,比如說SRAM、NOR flash、oneNand等。這個區域被分割為6個bank,每個bank為128MB,數據寬度最大支持16bit,每個bank通過 Xm0CS[5:0]來劃定。和S3C2410 不一樣的是,bank2~bank5能映射到nand flash、CF等非線性存儲器,這并不是說可以通過bank2~bank5的地址段就能直接訪問nand flash、CF內部的地址,相反,當映射到這些器件的時候這些bank的地址也不能再使用了,訪問這些非線性存儲器還是得通過Pheriperal空間的AHB總線進行,和S3C2410中的訪問方式是一樣的。不過有一個特例是,當Xm0CS2被映射到nand flash的時候,Steppingstone的SRAM被映射到bank2開始的4KB,而在以nand flash方式啟動的時候bank2被映射到0x00000000開始的地方,實際上就是把Steppingstone映射到0x0000000了,這和 S3C2410的情況還是相似的。
(4)動態內存區物理地址為0x40000000~0x6fffffff,共3*256MB。其中第一個256MB為保留區,實際使用的動態內存區為 0x50000000~0x6fffffff,又分為2個區間,分別占256MB,可以通過DMC的Xm1CS[1:0]來進行著2個區間的選擇。這個內存區主要是擴展DRAM,最大可以擴展512MB的DRAM。
2.Pheriperal外設區域通過PERI 總線被訪問,它的地址范圍是0x7000_0000~0x7FFF_FFFF。這個地址范圍的所有的SFR能被訪問。而且如果數據需要從NFCON或CFCON 傳輸,這些數據需要通過PERI總線傳輸。
特殊設備地址空間:
AHB總線存儲器映射
評論