<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 NAND與NOR啟動(dòng)方式詳解

s3c2440 NAND與NOR啟動(dòng)方式詳解

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò ) 收藏
一:地址空間的分配

1:s3c2440是32位的,所以可以尋址4GB空間,內存(SDRAM)和端口(特殊寄存器),還有ROM都映射到同一個(gè)4G空間里.

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

2:開(kāi)發(fā)板上一般都用SDRAM做內存flash(nor、nand)來(lái)當做ROM。其中nand flash沒(méi)有地址線(xiàn),一次至少要讀一頁(yè)(512B).其他兩個(gè)有地址線(xiàn)

3:nandflash不用來(lái)運行代碼,只用來(lái)存儲代碼,NORflash,SDRAM可以直接運行代碼)

4:s3c2440總共有8個(gè)內存banks
6個(gè)內存bank可以當作ROM或者SRAM來(lái)使用
留下的2個(gè)bank除了當作ROM或者SRAM,還可以用SDRAM(各種內存的讀寫(xiě)方式不一樣)
7個(gè)bank的起始地址是固定的
還有一個(gè)靈活的bank的內存地址,并且bank大小也可以改變

5:s3c2440支持兩種啟動(dòng)模式:NAND和非NAND(這里是nor flash)。
具體采用的方式取決于OM0、OM1兩個(gè)引腳

OM[1:0所決定的啟動(dòng)方式

OM[1:0]=00時(shí),處理器從NAND Flash啟動(dòng)

OM[1:0]=01時(shí),處理器從16位寬度的ROM啟動(dòng)

OM[1:0]=10時(shí),處理器從32位寬度的ROM啟動(dòng)。

OM[1:0]=11時(shí),處理器從Test Mode啟動(dòng)。


當從NAND啟動(dòng)時(shí)

cpu會(huì )自動(dòng)從NAND flash中讀取前4KB的數據放置在片內SRAM里(s3c2440是soc),同時(shí)把這段片內SRAM映射到nGCS0片選的空間(即0x00000000)。cpu是從0x00000000開(kāi)始執行,也就是NAND flash里的前4KB內容。因為NAND FLASH連地址線(xiàn)都沒(méi)有,不能直接把NAND映射到0x00000000,只好使用片內SRAM做一個(gè)載體。通過(guò)這個(gè)載體把nandflash中大代碼復制到RAM(一般是SDRAM)中去執行

當從非NAND flash啟動(dòng)時(shí)

nor flash被映射到0x00000000地址(就是nGCS0,這里就不需要片內SRAM來(lái)輔助了,所以片內SRAM的起始地址還是0x40000000).然后cpu從0x00000000開(kāi)始執行(也就是在Norfalsh中執行)。

總結:

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

1當引腳OM0跟OM1有一個(gè)是高電平時(shí),這時(shí)地址0會(huì )映射到外部nGCS0片選的空間,也就是Norflash,程序就會(huì )從Norflash中啟動(dòng),arm直接取Norflash中的指令運行。

2當OM0跟OM1都為低電平,則0地址內部bootbuf(一段4k的SRAM)開(kāi)始。系統上電,arm會(huì )自動(dòng)把NANDflash中的前4K內容考到bootbuf(也就是0地址),然后從0地址運行。

這時(shí)NANDFlash中的前4K就是啟動(dòng)代碼(他的功能就是初始化硬件然后在把NANDFlash中的代碼復制到RAM中,再把相應的指針指向該運行的地方)

為什么會(huì )有這兩種啟動(dòng)方式,關(guān)鍵還是兩種flash的不同特點(diǎn)造成,NOR FLASH容量小,速度快,穩定性好,輸入地址,然后給出讀寫(xiě)信號即可從數據口得到數據,適合做程序存儲器。NAND FLASH 總容量大,但是讀寫(xiě)都需要復雜的時(shí)序,更適合做數據存儲器。這種不同就造成了NORflash可以直接連接到arm的總線(xiàn)并且可以運行程序,而NANDflash必須搬移到內存(SDRAM)中運行。

在實(shí)際的開(kāi)發(fā)中,一般可以把bootloader燒入到Norflash,程序運行可以通過(guò)串口交互,進(jìn)行一定的操作,比如下載,調試。這樣就很可以很方便的調試你的一些代碼。Norflash中的Bootloader還可以燒錄內核到Norflash等等功能。



關(guān)鍵詞: s3c2440NANDNOR啟動(dòng)方

評論


技術(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>