<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > S3C2440地址空間的分配及啟動(dòng)過(guò)程

S3C2440地址空間的分配及啟動(dòng)過(guò)程

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏

一、S3C2440地址空間的分配

1.s3c2440A的存儲器控制器有以下特性:

本文引用地址:http://dyxdggzs.com/article/201611/317594.htm

l大小端(通過(guò)軟件選擇)

l地址空間:每個(gè)bank有128M的字節(總共1G字節/8個(gè)banks)

l可編程的訪(fǎng)問(wèn)位寬,bank0(16/32位),其他bank(8/16/32位)

l共8個(gè)存儲器banks

l6個(gè)是ROM,SRAM等類(lèi)型存儲器bank

l2個(gè)是可以作為ROM、SRAM、SDRAM等存儲器bank

l7個(gè)固定的存儲器bank起始地址

l最后一個(gè)bank的起始地址可調整

l最后兩個(gè)bank大小可編程

l所有存儲器bank的訪(fǎng)問(wèn)周期可編程

l總線(xiàn)訪(fǎng)問(wèn)周期可通過(guò)插入外部wait來(lái)延長(cháng)

l支持SDRAM的自刷新和掉電模式

2.尋址空間

s3c2440是32位的,所以理論上可以尋址4GB空間,內存(SDRAM)和端口(特殊寄存器),還有ROM都映射到同一個(gè)4G空間里。但是,芯片引腳上只給出了27根地址(ADDR[26:0]),單靠芯片上的27根引腳,它只能控制128M的空間,剩下的在哪里?

在cpu芯片手冊上,查它的內部寄存器的地址,我們可以找到一部分答案。比如這次總結筆記要講的存儲器控制寄存器,13個(gè)寄存器,每個(gè)寄存器的地址,都大于0X4000 0000的地址。而0x4000 0000(1G)是1G空間的分界線(xiàn),也就是說(shuō),1G~3G之間的空間,實(shí)際上都是被芯片自己占用了。實(shí)際上,給用戶(hù)的使用的空間,只有1G。

我們剛才說(shuō)了,我們使用了128M,用了27根地址線(xiàn)。而1G空間,需要30根地址線(xiàn)。剩下的3根用在什么地方?查了資料,突然明白了。這三根被三星公司偷偷地用在了3-8譯碼器的輸入端去了。而這個(gè)3-8譯碼器的輸出端,就是對應這nGCS0~7,對應著(zhù)8個(gè)bank。很明顯了,三星的2440留給用戶(hù)使用的這1G空間,27根線(xiàn)用于芯片引腳來(lái)控制具體的bank了,剩下的三根,用于選擇當前處于哪個(gè)bank。

二、S3C2440系統啟動(dòng)

手冊里說(shuō),2440啟動(dòng)方式?jīng)Q定于bank0,以及OM[1:0]。

Arm的啟動(dòng)都是從0地址開(kāi)始,所不同的是地址的映射不一樣。在arm開(kāi)電的時(shí)候,要想讓arm知道以某種方式(地址映射方式)運行,不可能通過(guò)你寫(xiě)的某段程序控制,因為這時(shí)候你的程序還沒(méi)啟動(dòng),這時(shí)候arm會(huì )通過(guò)引腳的電平來(lái)判斷。

S3C2440支持兩種啟動(dòng)方式:NandFlash和非NandFlash(例NorFlash)啟動(dòng)。

從NorFlash啟動(dòng)時(shí),與nGCS0相連的NorFlash就被映射到nGCS0片選的Bank0空間,其地址被映射為0x0000 0000;

從NandFlash啟動(dòng)時(shí),S3C2440芯片內部自帶的一塊容量為4K的被稱(chēng)為“Steppingstone”(起步石)的BootRAM被映射到nGCS0片選的Bank0空間,其地址被映射為0x0000 0000。當系統上電或復位時(shí),程序會(huì )從0x0地址處開(kāi)始執行,因此我們編寫(xiě)的啟動(dòng)代碼要確保存儲在0地址處。在實(shí)際的開(kāi)發(fā)中,一般可以把bootloader燒入到Norflash,程序運行可以通過(guò)串口交互,進(jìn)行一定的操作,比如下載,調試。這樣就很可以很方便的調試你的一些代碼。Norflash中的Bootloader還可以燒錄內核到Norflash等等功能。

NorFlash啟動(dòng)時(shí),沒(méi)有額外需要考慮的問(wèn)題,因為這種情況下程序在系統啟動(dòng)前就存儲在NorFlash中,我們只要保證將啟動(dòng)代碼保存在NorFlash開(kāi)始的位置即可,系統上電或復位時(shí),0地址處的啟動(dòng)代碼就會(huì )被執行。

NandFlash啟動(dòng)時(shí),系統啟動(dòng)前所有的程序存儲在NandFlash中,系統的啟動(dòng)過(guò)程稍微有點(diǎn)復雜:系統上電或復位時(shí),0地址處為S3C2440內部自帶的BootSRAM,啟動(dòng)前里面沒(méi)有任何存儲內容,啟動(dòng)后S3C2440先通過(guò)硬件機制將NandFlash前4k的內容拷貝到BootSRAM中,然后再運行里面的程序(從0地址處開(kāi)始)。這種情況下我們需要保證將啟動(dòng)代碼保存在NandFlash開(kāi)始的位置,并且啟動(dòng)代碼的大小要小于4K。

如果系統的所有程序在編譯鏈接后的大小小于4K,那在系統的啟動(dòng)代碼中無(wú)需考慮將程序從NandFlash搬運到SDRAM這個(gè)問(wèn)題,因為所有的程序在啟動(dòng)時(shí)即全部由NandFlash拷貝至BootSRAM,程序在BootSRAM中運行即可;如果系統的所有程序在編譯鏈接后的大小大于4K,那在系統的啟動(dòng)代碼中就需要包含一段將系統的全部程序從NandFlash搬運到SDRAM的代碼,因為系統啟動(dòng)時(shí)只將NandFlash的前4K拷貝到了BootSRAM中,還有部分程序在NandFlash中,而程序在NandFlash中是無(wú)法運行的,需要將所有程序拷貝至SDRAM并在其中運行,所以系統的啟動(dòng)代碼中要包含這段有關(guān)程序拷貝的代碼,并在所有程序拷貝完成后使程序跳轉到SDRAM中運行。也就是說(shuō)NandFlash啟動(dòng)時(shí)需要考慮到涉及的兩次搬移,第一次搬運是S3C2440硬件機制自動(dòng)實(shí)現的,無(wú)需干預,第二次搬運需要程序員來(lái)實(shí)現,搬運程序量大小是系統的所有程序。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>