『壹』 NOR FLASH和NAND FLASH各應用在什麼產品上
U盤的是NAND
.
因為nand
flash存儲比較大,寫入速度和清除速度都比nor快,所以經常用在U盤和智能手機中充當硬碟的角色(eMMC),內存就是DRAM了。
nor
flash的優勢是讀的速度非常快,而且非易失,所以常用來像手機開機工作,跟PC的CMOS一樣(可以存儲關鍵程序代碼),怎麼說呢,nor的優勢和劣勢一樣明顯,優勢是讀取速度,少量儲存能力使它跟RAM一樣,用在一些嵌入領域比如汽車控制這些不需要大容量儲存的電子產品還是很有前途的哈。
未來應該是NAND的天下。
『貳』 NAND flash和NOR flash的區別詳解
我們使用的智能手機除了有一個可用的空間(如蘋果8G、16G等),還有一個RAM容量,很多人都不是很清楚,為什麼需要二個這樣的晶元做存儲呢,這就是我們下面要講到的。這二種存儲設備我們都統稱為「FLASH」,FLASH是一種存儲晶元,全名叫Flash EEPROM Memory,通地過程序可以修改數據,即平時所說的「快閃記憶體」。Flash又分為NAND flash和NOR flash二種。U盤和MP3里用的就是這種存儲器。
相「flash存儲器」經常可以與相「NOR存儲器」互換使用。許多業內人士也搞不清楚NAND快閃記憶體技術相對於NOR技術的優越之處,因為大多數情況下快閃記憶體只是用來存儲少量的代碼,這時NOR快閃記憶體更適合一些。而NAND則是高數據存儲密度的理想解決方案。NOR Flash 的讀取和我們常見的 SDRAM 的讀取是一樣,用戶可以直接運行裝載在 NOR FLASH 裡面的代碼,這樣可以減少 SRAM 的容量從而節約了成本。 NAND Flash 沒有採取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的, 通常是一次讀取 512 個位元組,採用這種技術的 Flash 比較廉價。用戶 不能直接運行 NAND Flash 上的代碼,因此好多使用 NAND Flash 的開發板除了使用 NAND Flah 以外,還作上了 一塊小的 NOR Flash 來運行啟動代碼。
NOR flash是intel公司1988年開發出了NOR flash技術。NOR的特點是晶元內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash 快閃記憶體內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除 速度大大影響了它的性能。
『叄』 請問nand flash和nor flash有什麼不同
1、寫入/擦除操作的時間不同
【nand flash】:擦除NAND器件以8~32KB的塊進行,執行同一寫入/擦除的操作時間為4ms
【nor flash】:擦除NOR器件是以64~128KB的塊進行,執行同一個寫入/擦除操作的時間為5s
2、介面不同
【nand flash】:nand flash使用較為復雜的I/O口來串列地存取數據,並且各個產品或廠商的方法可能各不相同。
【nor flash】:nor flash為SRAM介面,擁有足夠的地址引腳用於定址。
3、容量成本不同
【nand flash】:NAND flash的單元尺寸大約為NOR器件的一半,由於生產過程更為簡單,因此價格較低。
【nor flash】:NOR flash單元尺寸較大,生產過程也較為復雜,因此價格較高。
4、耐用性不同
【nand flash】:NAND快閃記憶體中每個塊的最大擦寫次數是一百萬次。
【nor flash】:NOR快閃記憶體中每個塊的最大擦寫次數是十萬次。
『肆』 nor flash 和nand flash 的區別
簡單說明:NAND FLASH內部結構是用與非門組成存儲單元的。有非易失性,讀寫速度快,而且比較容易做到大容量。目前單片NAND FLASH存儲容量可以達到8Gbit(1GByte)。NOR FLASH也有非易失性。隨機存儲速度比NAND FLASH 快得多。所以一般用NOR FLASH 用做內存片,或者叫做數據緩沖。而NAND FLASH則一般用來做存儲數據用。比方說,U盤.MP3等。
詳細說明:
FLASH存儲器又稱快閃記憶體,主要有兩種:NorFlash和NandFlash,下面我們從多個角度來對比介紹一下。在實際開發中,設計者可以根據產品需求來進行快閃記憶體的合理選擇。
1、介面對比
NorFlash帶有通用的SRAM介面,可以輕松地掛接在CPU的地址、數據匯流排上,對CPU的介面要求低。NorFlash的特點是晶元內執行(XIP,eXecute In Place),這樣應用程序可以直接在flash快閃記憶體內運行,不必再把代碼讀到系統RAM中。如uboot中的ro段可以直接在NorFlash上運行,只需要把rw和zi段拷貝到RAM中運行即可。
NandFlash器件使用復雜的I/O口來串列地存取數據,8個引腳用來傳送控制、地址和數據信息。由於時序較為復雜,所以一般CPU最好集成NAND控制器。另外由於NandFlash沒有掛接在地址匯流排上,所以如果想用NandFlash作為系統的啟動盤,就需要CPU具備特殊的功能,如s3c2410在被選擇為NandFlash啟動方式時會在上電時自動讀取NandFlash的4k數據到地址0的SRAM中。如果CPU不具備這種特殊功能,用戶不能直接運行NandFlash上的代碼,那可以採取其他方式,比如好多使用NandFlash的開發板除了使用NandFlash以外,還用上了一塊小的NorFlash來運行啟動代碼。
2、容量和成本對比
相比起NandFlash來說,NorFlash的容量要小,一般在1~16MByte左右,一些新工藝採用了晶元疊加技術可以把NorFlash的容量做得大一些。在價格方面,NorFlash相比NandFlash來說較高,如目前市場上一片4Mbyte的AM29lv320 NorFlash零售價在20元左右,而一片128MByte的k9f1g08 NandFlash零售價在30元左右。
NandFlash生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,這樣也就相應地降低了價格。
3、可靠性性對比
NAND器件中的壞塊是隨機分布的,以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不劃算。NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在已製成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。而壞塊問題在NorFlash上是不存在的。
在Flash的位翻轉(一個bit位發生翻轉)現象上,NAND的出現幾率要比NorFlash大得多。這個問題在Flash存儲關鍵文件時是致命的,所以在使用NandFlash時建議同時使用EDC/ECC等校驗演算法。
4、壽命對比
在NAND快閃記憶體中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。快閃記憶體的使用壽命同時和文件系統的機制也有關,要求文件系統具有損耗平衡功能。
5、升級對比
NorFlash的升級較為麻煩,因為不同容量的NorFlash的地址線需求不一樣,所以在更換不同容量的NorFlash晶元時不方便。通常我們會通過在電路板的地址線上做一些跳接電阻來解決這樣的問題,針對不同容量的NorFlash。
而不同容量的NandFlash的介面是固定的,所以升級簡單。
6、讀寫性能對比
寫操作:任何flash器件的寫入操作都只能在空或已擦除的單元內進行。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為1。擦除NOR器件時是以64~128KB的塊進行的,執行一個擦除/寫入操作的時間約為5s。擦除NAND器件是以8~32KB的塊進行的,執行一個擦除/寫入操作最多隻需要4ms。
讀操作:NOR的讀速度比NAND稍快一些。
7、文件系統比較
Linux系統中採用MTD來管理不同類型的Flash晶元,包括NandFlash和NorFlash。支持在Flash上運行的常用文件系統有cramfs、jffs、jffs2、yaffs、yaffs2等。cramfs文件系統是只讀文件系統。如果想在Flash上實現讀寫操作,通常在NorFlash上我們會選取jffs及jffs2文件系統,在NandFlash上選用yaffs或yaffs2文件系統。Yaffs2文件系統支持大頁(大於512位元組/頁)的NandFlash存儲器。
『伍』 燒錄到nor什麼意思
NOR就是非易失快閃記憶體存儲器。
因為它確實是「燒」啊。這個詞最早是用在一次性可編程只讀存儲器上。不同於更早的集成電路,這樣的存儲器出廠時是一枚空白的晶元,可以通過特殊設備寫入內容。怎麼寫?高電壓。比方說晶元正常的讀取電壓是3.3V,那麼寫入就需要16V的電壓,這會永久性地改變寫入位置的物理組成。寫入之後再對特定針腳施加16V,燒斷高壓電路,這樣這枚OTPNVM就無法再次寫入了。這個過程實際上就是微觀地燒掉了一些晶元內部的東西。之後這個詞又很正確地用在了可寫光碟上。同樣的,寫入可寫光碟原理也根本就是用大功率(遠高於普通讀取)的激光使可寫光碟表面的特定位置的染料變性,使反光度發生變化,於是信息就記錄上去了。這也是微觀上燒掉了一些東西。所以燒這個詞就普遍地用於了光碟寫入和ROM寫入。不過之後隨著技術發展,很多非一次性的ROM出現了。寫入的原理也不再是永久性的改變。但是因為依舊是寫入ROM,所以燒這個詞還是沿用了,不過僅僅限於用在寫入單獨一塊不經常復寫的晶元上。你看大家就不說燒一個U盤或者燒SSD。不過光碟至今為止依舊是用燒的。只是對於可重復寫入的光碟來說燒不再是完全不可恢復的了。
『陸』 nand flash nor flash mcp flash 的區別
nor flash的存儲區是連續的支持連續燒錄,nand不支持連續燒錄,其存儲區不是連續的。nor出廠可以保證是好的,不存在壞塊;nand可能存在壞塊。
其他的區別網上可查
『柒』 NAND flash和NOR flash的區別詳解
NAND flash和NOR flash的區別
一、NAND flash和NOR flash的性能比較
flash快閃記憶體是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為0。由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多隻需要4ms。執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。
1、NOR的讀速度比NAND稍快一些。
2、NAND的寫入速度比NOR快很多。
3、NAND的4ms擦除速度遠比NOR的5s快。
4、大多數寫入操作需要先進行擦除操作。
5、NAND的擦除單元更小,相應的擦除電路更少。
二、NAND flash和NOR flash的介面差別
NOR flash帶有SRAM介面,有足夠的地址引腳來定址,可以很容易地存取其內部的每一個位元組。
NAND器件使用復雜的I/O口來串列地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。NAND讀和寫操作採用512位元組的塊,這一點有點像硬碟管理此類操作,很自然地,基於NAND的存儲器就可以取代硬碟或其他塊設備。
三、NAND flash和NOR flash的容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。
NOR flash占據了容量為1~16MB快閃記憶體市場的大部分,而NAND flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所佔份額最大。
四、NAND flash和NOR flash的可靠性和耐用性
採用flahs介質時一個需要重點考慮的問題是可靠性。對於需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
五、NAND flash和NOR flash的壽命(耐用性)
在NAND快閃記憶體中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除周期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。
六、位交換
所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能導致系統停機。如果只是報告有問題,多讀幾次就可能解決了。當然,如果這個位真的改變了,就必須採用錯誤探測/錯誤更正(EDC/ECC)演算法。位反轉的問題更多見於NAND快閃記憶體,NAND的供應商建議使用NAND快閃記憶體的時候,同時使用
七、EDC/ECC演算法
這個問題對於用NAND存儲多媒體信息時倒不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可靠性。
八、壞塊處理
NAND器件中的壞塊是隨機分布的。以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不劃算。
NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在已製成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。
九、易於使用
可以非常直接地使用基於NOR的快閃記憶體,可以像其他存儲器那樣連接,並可以在上面直接運行代碼。
由於需要I/O介面,NAND要復雜得多。各種NAND器件的存取方法因廠家而異。在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。
十、軟體支持
當討論軟體支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁碟模擬和快閃記憶體管理演算法的軟體,包括性能優化。
在NOR器件上運行代碼不需要任何的軟體支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。
使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟體,這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所採用。
驅動還用於對DiskOnChip產品進行模擬和NAND快閃記憶體的管理,包括糾錯、壞塊處理和損耗平衡。
『捌』 什麼叫NAND快閃記憶體什麼叫NOR快閃記憶體 這兩者有什麼區別
NAND快閃記憶體是一種非易失性存儲技術,即斷電後仍能保存數據。它的發展目標就是降低每比特存儲成本、提高存儲容量。NOR Flash是一種非易失快閃記憶體技術,是Intel在1988年創建。
區別
1、快閃記憶體晶元讀寫的基本單位不同
應用程序對NOR晶元操作以「字」為基本單位。為了方便對大容量NOR快閃記憶體的管理,通常將NOR快閃記憶體分成大小為128KB或者64KB的邏輯塊,有時候塊內還分成扇區。讀寫時需要同時指定邏輯塊號和塊內偏移。
應用程序對NAND晶元操作是以「塊」為基本單位。NAND快閃記憶體的塊比較小,一般是8KB,然後每塊又分成頁,頁的大小一般是512位元組。要修改NAND晶元中一個位元組,必須重寫整個數據塊。
2、應用不同
NOR快閃記憶體是隨機存儲介質,用於數據量較小的場合;NAND快閃記憶體是連續存儲介質,適合存放大的數據。
3、速度不同
N AN D快閃記憶體晶元因為共用地址和數據匯流排的原因,不允許對一個位元組甚至一個塊進行的數據清空,只能對一個固定大小的區域進行清零操作;而NOR晶元可以對字進行操作。所以在處理小數據量的I/O操作的時候的速度要快與NAND的速度。
『玖』 NOR和NAND Flash存儲器的區別
應用程序對NOR晶元操作以「字」為基本單位。為了方便對大容量NOR快閃記憶體的管理,通常將NOR快閃記憶體分成大小為128KB或者64KB的邏輯塊,有時候塊內還分成扇區。讀寫時需要同時指定邏輯塊號和塊內偏移。應用程序對NAND晶元操作是以「塊」為基本單位。NAND快閃記憶體的塊比較小,一般是8KB,然後每塊又分成頁,頁的大小一般是512位元組。要修改NAND晶元中一個位元組,必須重寫整個數據塊。
2)NOR快閃記憶體是隨機存儲介質,用於數據量較小的場合;NAND快閃記憶體是連續存儲介質,適合存放大的數據。
3) 由於NOR地址線和數據線分開,所以NOR晶元可以像SRAM一樣連在數據線上。NOR晶元的使用也類似於通常的內存晶元,它的傳輸效率很高,可執行程序可以在晶元內執行( XI P, eXecute In Place),這樣應用程序可以直接在flash快閃記憶體內運行,不必再把代碼 讀到系統RAM中。由於NOR的這個特點,嵌入式系統中經常將NOR晶元做啟動晶元使用。而NAND共用地址和數據匯流排,需要額外聯結一些控制的輸入輸出,所以直接將NAND晶元做啟動晶元比較難。
4) N AN D快閃記憶體晶元因為共用地址和數據匯流排的原因,不允許對一個位元組甚至一個塊進行的數據清空,只能對一個固定大小的區域進行清零操作;而NOR晶元可以對字進行操作。所以在處理小數據量的I/O操作的時候的速度要快與NAND的速度。比如一塊NOR晶元通 常寫一個字需要10微秒,那麼在32位匯流排上寫512位元組需要1280毫秒;而NAND快閃記憶體寫512位元組需要的時間包括:512×每位元組50納秒+10微秒的尋頁時間+200微秒的片擦寫時間=234微秒。
5)NAND快閃記憶體的容量比較大,目前最大容量己經達到8G位元組。為了方便管理,NAND的存儲空間使用了塊和頁兩級存儲體系,也就是說快閃記憶體的存儲空間是二維的,比如K9F5608UOA快閃記憶體塊的大小為16K,每頁的大小是512位元組,每頁還16位元組空閑區用來存放錯誤校驗碼空間(有時也稱為out-of-band,OOB空間);在進行寫操作的時候NAND快閃記憶體每次將一個位元組的數據放入內部的緩存區,然後再發出「寫指令」進行寫操作。由於對NAND快閃記憶體的操作都是以塊和頁為單位的,所以在向NAND快閃記憶體進行大量數據的讀寫時,NAND的速度要快於NOR快閃記憶體。
6)NOR快閃記憶體的可靠性要高於NAND快閃記憶體,這主要是因為NOR型快閃記憶體的介面簡單,數據操作少,位交換操作少,因此可靠性高,極少出現壞區塊,因而一般用在對可靠性要求高的地方。相反的,NAND型快閃記憶體介面和操作均相對復雜,位交換操作也很多,關鍵性數據更是需安錯誤探測/錯誤更正〔EDC/ECC)演算法來確保數據的完整性,因此出現問題的幾率要大得多,壞區塊也是不可避免的,而且由於壞區塊是隨機分布的,連糾錯也無法做到。
7)NAND Flash一般地址線和數據線共用,對讀寫速度有一定影響;而NOR Flash快閃記憶體數據線和地址線分開,所以相對而言讀寫速度快一些。
NAND和NOR晶元的共性首先表現在向晶元中寫數據必須先將晶元中對應的內容清空,然後再寫入,也就是通常說的「先擦後寫」。只不過NOR晶元只用擦寫一個字,而NAND需要擦寫整個塊。其次,快閃記憶體擦寫的次數都是有限的.當快閃記憶體的使用接近使用壽命的時候,經常會出現寫操作失敗;到達使用壽命時,快閃記憶體內部存放的數據雖然可以讀,但是不能再進行寫操作了所以為了防止上面問題的發生,不能對某個特定的區域反復進行寫操作。通常NAND的可擦寫次數高於NOR晶元,但是由於NAND通常是整塊擦寫,塊內的頁面中如果有一位失效整個塊就會失效,而且由於擦寫過程復雜,失敗的概率相對較高,所以從整體上來說NOR的壽命較長。
另一個共性是快閃記憶體的讀寫操作不僅僅是一個物理操作,實際上在快閃記憶體上存放數據必須使用演算法實現,這個模塊一般在驅動程序的MTD' (Memory Technology Drivers)模塊中或者在FTLZ (Flash Translation Layer)層內實現,具體演算法和晶元的生產廠商以及晶元型號有關系。
從使用角度來看,NOR快閃記憶體與NAND快閃記憶體是各有特點的:(1)NOR的存儲密度低,所以存儲一個位元組的成本也較高,而NAND快閃記憶體的存儲密度和存儲容量均比較高;(2)NAND型快閃記憶體在擦、寫文件(特別是連續的大文件)時速度非常快,非常適用於順序讀取的場合,而NOR的讀取速度很快,在隨機存取的應用中有良好的表現。 NOR與NAND各有所長,但兩種優勢無法在一個晶元上得到體現。所以,設計人員在選用晶元時,只能趨其利而避其害,依照使用目的和主要功能在兩者之間進行適當的選擇。
『拾』 Nand,iNAND和NOR flash有什麼區別
sdram:主要用於程序執行時的程序存儲、執行或計算,類似內存。
nor flash:適合小容量的程序或數據存儲,類似小硬碟;
nand flash:適合大容量數據存儲,類似硬碟;
inand flash:是SanDisk公司研發的存儲晶元,可以簡單的看成SD卡或MMC卡晶元化。
Nor flash的有自己的地址線和數據線,可以採用類似於memory的隨機訪問方式,在nor flash上可以直接運行程序,所以nor flash可以直接用來做boot,採用nor flash啟動的時候會把地址映射到0x00上。
Nand flash是IO設備,數據、地址、控制線都是共用的,需要軟體區控制讀取時序,所以不能像nor flash、內存一樣隨機訪問,不能EIP(片上運行),因此不能直接作為boot。
NANDFlash啟動: NANDFlash控制器自動把nandflash存儲器的前4K載到Steppingstone(內部SRAM緩沖器),並把0x00000000S設置為內部SRAM的起始地址,cpu從內部SRAM的0x00000000開始啟動,這個過程不需要程序干涉。(cpu會自動從NAND flash中讀取前4KB的數據放置在片內SRAM里(s3c2440是soc),同時把這段片內SRAM映射到nGCS0片選的空間(即0x00000000)。cpu是從0x00000000開始執行,也就是NAND flash里的前4KB內容。因為NAND FLASH連地址線都沒有,不能直接把NAND映射到0x00000000,只好使用片內SRAM做一個載體。通過這個載體把nandflash中大代碼復制到RAM(一般是SDRAM)中去執行)。程序員要完成的工作是把最核心的代碼放在nandflash的前4K中。4K代碼要完成S3C2440的核心配置以及啟動代碼(U-boot)的剩餘部分拷貝到SDRAM中。 這4K的啟動代碼需要將NANDFlash中的內容復制到SDRAM中執行。NANDFlash的前4K空間放啟動代碼,SDRAM速度較快,用來執行主程序的代碼。ARM一般從ROM或Flash啟動完成初始化,然後將應用程序拷貝到RAM,然後跳到RAM執行。
NORflash啟動:支持XIP即代碼直接在NOR Flash上執行,無需復制到內存中。這是由於NORFlash的介面與RAM完全相同,可隨機訪問任意地址數據。NORflash速度快,數據不易失,可作為存儲並執行起到代碼和應用程序的存儲器,norflash可像內存一樣讀操作,但擦初和寫操作效率很低,遠不及內存,一般先在代碼的開始部分使用匯編指令初始化外接的的內存部件(外存SDRAM),最後跳到外存中繼續執行。對於小程序一般把它燒到NANDflash中,藉助cpu內部RAM(SRAM)直接雲行。 nor flash被映射到0x00000000地址(就是nGCS0,這里就不需要片內SRAM來輔助了,所以片內SRAM的起始地址還是0x40000000). 然後cpu從0x00000000開始執行(也就是在Norfalsh中執行)。 NORflash速度快,數據不易失,可作為存儲並執行起到代碼和應用程序的存儲器,norflash可像內存一樣讀操作,但擦初和寫操作效率很低,價格很昂貴。SDRAM和nandflash的價格比較適中。根據這些特點,一些人產生了這樣一種想法:外部nandflash中執行啟動代碼,SDRAM中執行主程序。NANDFlash控制器自動把nandflash存儲器的前4K載到Steppingstone(內部SRAM緩沖器),並把0x00000000S設置為內部SRAM的起始地址,cpu從內部SRAM的0x00000000開始啟動,這個過程不需要程序干涉。這4K的啟動代碼需要將NANDFlash中的內容復制到SDRAM中執行。NANDFlash的前4K空間放啟動代碼,SDRAM速度較快,用來執行主程序的代碼。ARM一般從ROM或Flash啟動完成初始化,然後將應用程序拷貝到RAM,然後跳到RAM執行。
總結: Arm的啟動都是從0地址開始,所不同的是地址的映射不一樣。在arm開電的時候,要想讓arm知道以某種方式(地址映射方式)運行,不可能通過你寫的某段程序控制,因為這時候你的程序還沒啟動,這時候arm會通過引腳的電平來判斷。
1當引腳OM0跟OM1有一個是高電平時,這時地址0會映射到外部nGCS0片選的空間,也就是Norflash,程序就會從Norflash中啟動,arm直接取Norflash中的指令運行。
2當OM0跟OM1都為低電平,則0地址內部bootbuf(一段4k的SRAM)開始。系統上電,arm會自動把NANDflash中的前4K內容考到bootbuf(也就是0地址),然後從0地址運行。這時NANDFlash中的前4K就是啟動代碼(他的功能就是初始化硬體然後在把NANDFlash中的代碼復制到RAM中,再把相應的指針指向該運行的地方)為什麼會有這兩種啟動方式,關鍵還是兩種flash的不同特點造成,NOR FLASH容量小,速度快,穩定性好,輸入地址,然後給出讀寫信號即可從數據口得到數據,適合做程序存儲器。NAND FLASH 總容量大,但是讀寫都需要復雜的時序,更適合做數據存儲器。這種不同就造成了NORflash可以直接連接到arm的匯流排並且可以運行程序,而NANDflash必須搬移到內存(SDRAM)中運行。在實際的開發中,一般可以把bootloader燒入到Norflash,程序運行可以通過串口交互,進行一定的操作,比如下載,調試。這樣就很可以很方便的調試你的一些代碼。Norflash中的Bootloader還可以燒錄內核到Norflash等等功能
關於為什麼NAND Flash不能直接運行程序的說明:
Nand Flash的命令、地址、數據都通過I/O口發送,管腳復用,這樣做做的好處是,可以明顯減少NAND FLASH的管腳數目,將來如果設計者想將NAND FLASH更換為更高密度、更大容量的,也不必改動電路板。
NAND FLASH不能夠執行程序,本人總結其原因如下 :
1. NAND FLASH本身是連接到了控制器上而不是系統匯流排上。CPU啟動後是要取指令執行的,如果是SROM、NOR FLASH 等之類的,CPU 發個地址就可以取得指令並執行,NAND FLASH不行,因為NAND FLASH 是管腳復用,它有自己的一套時序,這樣CPU無法取得可以執行的代碼,也就不能初始化系統了。
2. NAND FLASH是順序存取設備,不能夠被隨機訪問,程序就不能夠分支或跳轉,這樣你如何去設計程序。