s3c2440存儲控制器和地址以及啟動(dòng)的理解
NAND Flash地址線(xiàn)和數據線(xiàn)在一起,需要用程序來(lái)控制,才能出數據。
通俗的說(shuō),只給地址不行,要先命令,再給地址,才能讀到NAND的數據,在一個(gè)總線(xiàn)完成的。
結論是:ARM無(wú)法從NAND直接啟動(dòng)。除非裝載完程序,才能使用NAND Flash.
2.Nand Flash的命令、地址、數據都通過(guò)I/O口發(fā)送,管腳復用,這樣做做的好處是,可以明顯減少NAND FLASH的管腳數目,將來(lái)如果設計者想將NAND FLASH更換為更高密度、更大容量的,也不必改動(dòng)電路板。在S3C2440中NANDFLASH的控制依靠NAND FLASH控制器。不能夠執行程序,本人總結其原因如下 :
a. NAND FLASH本身是連接到了控制器上而不是系統總線(xiàn)上。CPU啟動(dòng)后是要取指令執行的,如果是SROM、NOR FLASH 等之類(lèi)的,CPU 發(fā)個(gè)地址就可以取得指令并執行,NAND FLASH不行,因為NAND FLASH 是管腳復用,它有自己的一套時(shí)序,這樣CPU無(wú)法取得可以執行的代碼,也就不能初始化系統了。
b. NAND FLASH是順序存取設備,不能夠被隨機訪(fǎng)問(wèn),程序就不能夠分支或跳轉,這樣你如何去設計程序。
4.Samsung S3C2440支持Nor Flash和Nand Flash啟動(dòng),在TQ2440上可以通過(guò)跳線(xiàn)設置啟動(dòng)方式。主要由OM[1:0]這兩位來(lái)決定從何處啟動(dòng)。具體含義如下:
OM[1:0]所決定的啟動(dòng)方式
本文引用地址:http://dyxdggzs.com/article/201611/320148.htmOM[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)。
Arm的啟動(dòng)都是從0地址開(kāi)始,所不同的是地址的映射不一樣。在arm開(kāi)電的時(shí)候,要想讓arm知道以某種方式(地址映射方式)運行,不可能通過(guò)你寫(xiě)的某段程序控制,因為這時(shí)候你的程序還沒(méi)啟動(dòng),這時(shí)候arm會(huì )通過(guò)引腳的電平來(lái)判斷。
a.當引腳OM0跟OM1有一個(gè)是高電平時(shí),這時(shí)地址0會(huì )映射到外部nGCS0片選的空間(Bank0),也就是Norflash,程序就會(huì )從Norflash中啟動(dòng),arm直接取Norflash中的指令運行。
b.當OM0跟OM1都為低電平,則0地址內部bootbuf(一段4k的SRAM)開(kāi)始。系統上電,arm會(huì )自動(dòng)把NANDflash中的前4K內容考到bootbuf(也就是0地址),然后從0地址運行。
這時(shí)NANDFlash中的前4K就是啟動(dòng)代碼(他的功能就是初始化硬件然后在把NANDFlash中的代碼復制到RAM中,再把相應的指針指向該運行的地方)
5.啟動(dòng)代碼應該做什么?
bootloader在某種意義上來(lái)說(shuō)即是一個(gè)啟動(dòng)代碼,種類(lèi)有很多(vivi uboot 等),但是功能上無(wú)非就是完成一些初始化。bootloader是芯片復位后進(jìn)入操作系統之前執行的一段代碼,完成由硬件啟動(dòng)到操作系統啟動(dòng)的過(guò)渡,為運行操作系統提供基本的運行環(huán)境,如初始化CPU、堆棧、初始化存儲器系統等,其功能類(lèi)似于PC機的BIOS.

2. 地址空間:每個(gè)bank為128MB (總共1GB);
3. 除了bank0其余所有banks的數據位寬是可編程的(8/16/32-bit);(bank0是16/32位)
4. 總共8個(gè)memory banks,其中6個(gè)bank是接ROM,SRAM等,其余2個(gè)bank是接ROM,SRAM,SDRAM等;
5. 7個(gè)memory bank的起始地址是固定的;(發(fā)現size也是固定的,128MB)
6. 1個(gè)memory bank的起始地址和大小是可靈活可變的;
7. 所有banks的訪(fǎng)問(wèn)周期數是可編程的;
8. 支持片外等待信號以擴充總線(xiàn)周期;
9. SDRAM在Power down模式下支持自動(dòng)刷新.
2. Nand Flash存儲接口: 支持256Words,512Bytes,1KWords和2KBytes Page;
3. 軟件模式: 用戶(hù)能直接訪(fǎng)問(wèn)nand flash;
4. 接口: 支持8/16-bit Nand flash存儲接口;
5. 支持大小端模式;
6. 硬件ECC發(fā)生器:檢測和指示(軟件糾正)(此處不怎么理解);
7. Steppingstone: 4KB SRAM Buffer,在nand flash啟動(dòng)過(guò)后可以用作它處.
評論