轉自:http://m.zhizuobiao.com/flash/flash-18052900158/
1.什麼是記憶體
什麼是記憶體呢?在計算機的組成結構中,有一個很重要的部分,就是存儲器。存儲器是用來存儲程式和資料的部件,對于計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱記憶體儲器(簡稱記憶體),輔助存儲器又稱外存儲器(簡稱外存)。外存通常是磁性媒體或CD光牒,像硬碟,軟碟,錄音帶,CD等,能長期儲存資訊,并且不依賴于電來儲存資訊,但是由機械部件帶動,速度與CPU相比就顯得慢的多。記憶體指的就是主機闆上的存儲部件,是CPU直接與之溝通,并用其存儲資料的部件,存放目前正在使用的(即執行中)的資料和程式,它的實體實質就是一組或多組具備資料輸入輸出和資料存儲功能的內建電路,記憶體隻用于暫時存放程式和資料,一旦關閉電源或發生斷電,其中的程式和資料就會丢失。
2.記憶體工作原理:
記憶體是用來存放目前正在使用的(即執行中)的資料和程式,我們平常所提到的計算機的記憶體指的是動态記憶體(即DRAM),動态記憶體中所謂的'動态',指的是當我們将資料寫入DRAM後,經過一段時間,資料會丢失,是以需要一個額外設電路進行記憶體重新整理操作。
具體的工作過程是這樣的:一個DRAM的存儲單元存儲的是0還是1取決于電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是資料丢失的原因;重新整理操作定期對電容進行檢查,若電量大于滿電量的1/2,則認為其代表1,并把電容充滿電;若電量小于1/2,則認為其代表0,并把電容放電,藉此來保持資料的連續性。
ROM也有很多種,PROM是可程式設計的ROM,PROM和EPROM(可擦除可程式設計ROM)兩者差別是,PROM是一次性的,也就是軟體灌入後,就無法修改了,這種是早期的産品,現在已經不可能使用了,而EPROM是通過紫外光的照射擦出原先的程式,是一種通用的存儲器。另外一種EEPROM是通過電子擦出,價格很高,寫入時間很長,寫入很慢。
從一有計算機開始,就有記憶體。記憶體發展到今天也經曆了很多次的技術改進,從最早的DRAM一直到FPMDRAM、EDODRAM、SDRAM等,記憶體的速度一直在提高且容量也在不斷的增加。
3.ROM和RAM指的都是半導體存儲器
1)ROM是Read Only Memory的縮寫
是一種半導體記憶體,其特性是一旦儲存資料就無法再将之改變或删除。通常用在不需經常變更資料的電子或電腦系統中,資料并且不會因為電源關閉而消失。
隻能讀出事先所存資料的固态半導體存儲器。英文簡稱ROM。ROM所存資料,一般是裝入整機前事先寫好的,整機工作過程中隻能讀出,而不像随機存儲器那樣能快速地、友善地加以改寫。ROM所存資料穩定 ,斷電後所存資料也不會改變;其結構較簡單,讀出較友善,因而常用于存儲各種固定程式和資料。除少數品種的隻讀存儲器(如字元發生器)可以通用之外,不同使用者所需隻讀存儲器的内容不同。
為便于使 用和大批 量 生産 ,進一步發展了可程式設計隻讀存儲器(PROM)、可擦可程式設計式隻讀存儲器(EPROM)和電可擦可程式設計隻讀存儲器(EEPROM)。EPROM需用紫外光長時間照射才能擦除,使用很不友善。20世紀 80 年代制出的 EEPROM ,克服了EPROM的不足,但內建度不高 ,價格較貴。于是又開發出一種新型的存儲單元結構同 EPROM 相似的快閃存儲器 。其內建度高、功耗低 、體積小 ,又能線上快速擦除 ,因而獲得飛速發展,并有可能取代現行的硬碟和軟碟而成為主要的大容量存儲媒體。大部分隻讀存儲器用金屬-氧化物-半導體(MOS)場效應管制成。
2)RAM是Random Access Memory的縮寫。
又稱為随機存取存儲器;存儲單元的内容可按需随意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時将丢失其存儲内容,故主要用于存儲短時間使用的程式。
簡單地說,在計算機中,RAM 、ROM都是資料存儲器。RAM 是随機存取存儲器,它的特點是易揮發性,即掉電失憶。ROM 通常指固化存儲器(一次寫入,反複讀取),它的特點與RAM 相反。ROM又分一次性固化、光擦除和電擦除重寫兩種類型。
ROM在系統停止供電的時候仍然可以保持資料,而RAM通常都是在掉電之後就丢失資料,典型的RAM就是計算機的記憶體。
4.RAM分為兩大類:
1)一種稱為靜态RAM(Static RAM/SRAM),SRAM速度非常快,是目前讀寫最快的儲存設備了,但是它也非常昂貴,是以隻在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。
2)另一種稱為動态RAM(Dynamic RAM/DRAM),DRAM保留資料的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機記憶體就是DRAM的。
DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這裡介紹其中的一種DDR RAM。
DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個時鐘讀寫兩次資料,這樣就使得資料傳輸速度加倍了。這是目前電腦中用得最多的記憶體,而且它有着成本優勢,事實上擊敗了Intel的另外一種記憶體标準-Rambus DRAM。在很多高端的顯示卡上,也配備了高速DDR RAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。
5.再不明白的請看例子:
舉個例子,手機軟體一般放在EEPROM中,我們打電話,有些最後撥打的号碼,暫時是存在SRAM中的,不是馬上寫入通過記錄(通話記錄儲存在EEPROM中),因為當時有很重要工作(通話)要做,如果寫入,漫長的等待是讓使用者忍無可忍的。
FLASH存儲器又稱閃存,它結合了ROM和RAM的長處,不僅具備電子可擦除可程式設計(EEPROM)的性能,還不會斷電丢失資料同時可以快速讀取資料(NVRAM的優勢),U盤和MP3裡用的就是這種存儲器。在過去的20年裡,嵌入式系統一直使用ROM(EPROM)作為它們的儲存設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作存儲Bootloader以及作業系統或者程式代碼或者直接當硬碟使用(U盤)。
目前Flash主要有兩種NOR Flash和NADN Flash。
NOR Flash的讀取和我們常見的SDRAM的讀取是一樣,使用者可以直接運作裝載在NOR FLASH裡面的代碼,這樣可以減少SRAM的容量進而節約了成本。
NAND Flash沒有采取記憶體的随機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個位元組,采用這種技術的Flash比較廉價。使用者不能直接運作NAND Flash上的代碼,是以好多使用NAND Flash的開發闆除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運作啟動代碼。
一般小容量的用NOR Flash,因為其讀取速度快,多用來存儲作業系統等重要資訊,而大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統采用的DOC(Disk On Chip)和我們通常用的'閃盤',可以線上擦除。目前市面上的FLASH 主要來自Intel,AMD,Fujitsu和Toshiba,而生産NAND Flash的主要廠家有Samsung和Toshiba。
------------------------------------------------------------黃金分界線----------------------------------------------------------------------------------------
問題1:什麼是DRAM、SRAM、SDRAM?
答:名詞解釋如下
DRAM--------動态随即存取器,需要不斷的重新整理,才能儲存資料,而且是行列位址複用的,許多都有頁模式
SRAM--------靜态的随機存儲器,加電情況下,不需要重新整理,資料不會丢失,而且一般不是行列位址複用的
SDRAM-------同步的DRAM,即資料的讀寫需要時鐘來同步
問題2:為什麼DRAM要重新整理,SRAM則不需要?
答:這是由RAM的設計類型決定的,DRAM用了一個T和一個RC電路,導緻電容會漏電和緩慢放電,是以需要經常重新整理來儲存資料
問題3:我們通常所說的記憶體用的是什麼呢?這三個産品跟我們實際使用有什麼關系?
答:記憶體(即随機存貯器RAM)可分為靜态随機存儲器SRAM,和動态随機存儲器DRAM兩種。我們經常說的“
記憶體”是指DRAM。而SRAM大家卻接觸的很少。
問題4:為什麼使用DRAM比較多、而使用SRAM卻很少?
答:1)因為制造相同容量的SRAM比DRAM的成本高的多,正因為如此,才使其發展受到了限制。是以目前SRAM基本上隻用于CPU内部的一級緩存以及内置的二級緩存。僅有少量的網絡伺服器以及路由器上能夠使用SRAM。
2)存儲單元結構不同導緻了容量的不同:一個DRAM存儲單元大約需要一個半導體和一個電容(不
包括行讀出放大器等),而一個SRAM存儲單元大約需要六個半導體。DRAM和SDRAM由于實作工藝問題,容量
較SRAM大,但是讀寫速度不如SRAM。
問題5:用得最多的DRAM有什麼特點呢?它的工藝是什麼情況?(通常所說的記憶體就是DRAM)
答:1)DRAM需要進行周期性的重新整理操作,我們不應将SRAM與隻讀存儲器(ROM)和Flash Memory相混淆,因為SRAM是一種易失性存儲器,它隻有在電源保持連續供應的情況下才能夠保持資料。“随機通路”是指存儲器的内容可以以任何順序通路,而不管前一次通路的是哪一個位置。
2)DRAM和SDRAM由于實作工藝問題,容量較SRAM大。但是讀寫速度不如SRAM,但是現在,SDRAM的速度也已經很快了,時鐘好像已經有150兆的了。那麼就是讀寫周期小于10ns了。
3)SDRAM雖然工作頻率高,但是實際吞吐率要打折扣。以PC133為例,它的時鐘周期是7.5ns,當CAS latency=2 時,它需要12個周期完成8個突發讀操作,10個周期完成8個突發寫操作。不過,如果以交替方式通路Bank,SDRAM可以在每個周期完成一個讀寫操作(當然除去重新整理操作)。
4)其實作在的主流高速存儲器是SSRAM(同步SRAM)和SDRAM(同步DRAM)。目前可以友善買到的SSRAM最大容量是8Mb/片,最大工作速度是166MHz;可以友善買到的SDRAM最大容量是128Mb/片,最大工作速度是133MHz。
問題6:用得比較少但速度很快,通常用于伺服器cache的SRAM有什麼特點呢?
答:1)SRAM是靜态的,DRAM或SDRAM是動态的,靜态的是用的雙穩态觸發器來儲存資訊,而動态的是用電子,要不時的重新整理來保持。SRAM是Static Random Access Memory的縮寫,中文含義為靜态随機通路存儲器,它是一種類型的半導體存儲器。“靜态”是指隻要不掉電,存儲在SRAM中的資料就不會丢失。
2)SRAM其實是一種非常重要的存儲器,它的用途廣泛。SRAM的速度非常快,在快速讀取和重新整理時能夠保持資料完整性。SRAM内部采用的是雙穩态電路的形式來存儲資料。是以SRAM的電路結構非常複雜。
3)從半導體的類型分,SRAM可以分為雙極性與CMOS兩種。從功能上分,SRAM可以分為異步SRAM和同步SRAM(SSRAM)。異步SRAM的通路獨立于時鐘,資料輸入和輸出都由位址的變化控制。同步SRAM的所有通路都在時鐘的上升/下降沿啟動。位址、資料輸入和其它控制信号均于時鐘信号相關。
最後要說明的一點:
SRAM不應該與SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),這與SRAM是完全不同的。SRAM也不應該與PSRAM相混淆,PSRAM是一種僞裝成SRAM的DRAM。
------------------------------------------------------------黃金分界線----------------------------------------------------------------------------------------
關于Nor和Nand的介紹和差別,在網絡上有很多,如果不是經常用的話,還真的無法說出個是以然來。我也是轉帖網絡上的,目的是經常能看看。
NOR和NAND是現在市場上兩種主要的非易失閃存技術。Intel于1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接着,1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,并且象磁盤一樣可以通過接口輕松更新。但是經過了十多年之後,仍然有相當多的硬體工程師分不清NOR和NAND閃存。
相“flash存儲器”經常可以與相“NOR存儲器”互換使用。許多業内人士也搞不清楚NAND閃存技術相對于NOR技術的優越之處,因為大多數情況下閃存隻是用來存儲少量的代碼,這時NOR閃存更适合一些。而NAND則是高資料存儲密度的理想解決方案。
一.存儲差別比較
NOR的特點是晶片内執行(XIP, execute In Place),這樣應用程式可以接在flash閃存内運作,不必再把代碼讀到系統RAM中。
NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NAND結構能提供極高的單元密度,可以達到高存儲密度,并且寫入和擦除的速度也很快。應用NAND的困難在于flash的管理和需要特殊的系統接口。
二.性能比較
flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再程式設計。任何flash器件的寫入操作隻能在空或已擦除的單元内進行,是以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要将目标塊内所有的位都寫為0。
由于擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多隻需要4ms。
執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對于給定的一套寫入操作(尤其是更新小檔案時更多的擦除操作必須在基于NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。
● NOR的讀速度比NAND稍快一些。
● NAND的寫入速度比NOR快很多。
● NAND的4ms擦除速度遠比NOR的5s快。
● 大多數寫入操作需要先進行擦除操作。
● NAND的擦除單元更小,相應的擦除電路更少。
三.接口差别
NOR flash帶有SRAM接口,有足夠的位址引腳來尋址,可以很容易地存取其内部的每一個位元組。
NAND器件使用複雜的I/O口來串行地存取資料,各個産品或廠商的方法可能各不相同。8個引腳用來傳送控制、位址和資料資訊。
NAND讀和寫操作采用512位元組的塊,這一點有點像硬碟管理此類操作,很自然地,基于NAND的存儲器就可以取代硬碟或其他塊裝置。
四.容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由于生産過程更為簡單,NAND結構可以在給定的模具尺寸内提供更高的容量,也就相應地降低了價格。
NOR flash占據了容量為1~16MB閃存市場的大部分,而NAND flash隻是用在8~128MB的産品當中,這也說明NOR主要應用在代碼存儲媒體中,NAND适合于資料存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。
五.可靠性和耐用性
采用flahs媒體時一個需要重點考慮的問題是可靠性。對于需要擴充MTBF的系統來說,Flash是非常合适的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
六.壽命(耐用性)
在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閃存的管理,包括糾錯、壞塊處理和損耗。
------------------------------------------------------------黃金分界線----------------------------------------------------------------------------------------
ram和rom:
rom:制作是寫入
prom:可寫一次
eprom/eeprom:可寫多次
flash rom:閃存(Flash Memory) 非易失閃存技術:NOR flash、NAND flash
實際應用:
RAM:
RAM有兩大類,一種稱為靜态RAM(Static RAM/SRAM),SRAM速度非常快,是目前讀寫最快的儲存設備了,但是它也非常昂貴,是以隻在要求很苛刻的地方使
用,譬如CPU的一級緩沖cache。另一種稱為動态RAM(Dynamic RAM/DRAM),DRAM保留資料的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,
但從價格上來說DRAM相比SRAM要便宜很多,計算機記憶體就是DRAM的。
ROM:
手機的ROM和傳統的ROM(Read Only Memory)又有些不一樣,它分為兩部分,一部分是用于系統,另外一部分是用作使用者存儲資料。而存儲卡則很好了解了
,常用的有tf卡,用于存儲使用者資料。
在過去的20年裡,嵌入式系統一直使用ROM(EPROM)作為它們的儲存設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作存儲
Bootloader以及作業系統或者程式代碼或者直接當硬碟使用(U盤)。
實際應用:
NOR Flash 的讀取和我們常見的 SDRAM 的讀取是一樣,使用者可以直接運作裝載在 NOR FLASH 裡面的代碼,這樣可以減少 SRAM 的容量進而節約了成本。
NAND Flash 沒有采取記憶體的随機讀取技術,它的讀取是以一次讀取一塊的形式來進行的, 通常是一次讀取 512 個位元組,采用這種技術的 Flash 比較廉價
。使用者 不能直接運作 NAND Flash 上的代碼,是以好多使用 NAND Flash 的開發闆除了使用 NAND Flah 以外,還作上了 一塊小的 NOR Flash 來運作啟動
代碼。
NOR主要應用在代碼存儲媒體中,NAND适合于資料存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。
NOR flash占據了容量為1~16MB閃存市場的大部分,而NAND flash隻是用在8~128MB的産品當中,這也說明NOR主要應用在代碼存儲媒體中,NAND适合于資料
存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC(多媒體存儲卡Multi Media Card)存儲卡市場上所占份額最大。
手機市場:
在手機市場中NOR FLASH是當之無愧的上司者,目前大部分手機使用的是NOR+PSRAM的XiP存儲架構,其中NOR FLASH用來存儲代碼和資料,PSRAM作為MCU
和 DSP執行運算時的資料緩存。随着手機功能的日益豐富,需要更大的代碼和資料存儲空間,這時如果選擇大容量的NOR FLASH,成本将非常昂貴,是以,一
些高端手機 中開始加入NAND來作為多媒體資料的一個存儲載體。從成本效益來看,NOR FLASH的最大存儲容量不能超過1GB,否則就沒有競争優勢了;并且,以
PSRAM的結構和特性,它的容量很難超過256MB,這種組合将成 為多媒體手機的一個限制。造成這個問題的原因主要是早期手機基帶等IC技術掌握在歐美公司
手中,他們對于成本考量并不是非常關注,而今,國内IC廠商的崛 起和手機市場的激烈競争,使得所有的設計師開始考慮如何降低BOM COST。
和大部分手機采用的存儲結構對比。XiP架構是現在使用最多的,而新的高速處理平台正在向代碼映射存儲器架構發展,也就是NAND+SDRAM方式。 雖然
NAND閃存有一些應用問題,但是NAND閃存機關bit成本加上其缺點導緻的額外成本仍然要比NOR閃存的機關bit成本低。
RAM的容量又分标稱容量、實際容量和可用容量三種,标稱容量即我們看手機參數的容量,即1G、2G這些。實際容量會比标稱容量少一些,這其除了一些小量
的損耗(算法、顆粒的不同)之外,部分手機還會被GPU占用一部分RAM,是以一些2G的手機看到的實際容量會是1.7G~1.8G。而可用容量又會比實際容量再少
一些,是由于系統占用以及背景程式的占用的原因,一般2G的手機剛開機的時候可用RAM會有1.3G左右,而1G的手機可用有400M左右。
存儲卡的标稱容量和實際容量比較接近,例如16G的存儲卡可用容量都會達到14G甚至15G。
------------------------------------------------------------黃金分界線----------------------------------------------------------------------------------------
檢視了實際應用中小米手機,是使用的NAND+SDRAM方式,小米手機2:2GB DDR2 533運作記憶體(RAM)+ 閃迪出品16G儲存晶片(ROM);
三星S3C2440A開發闆:
//
啟動代碼是系統上電或者複位後運作的第一段代碼 他的作用是在使用者程式運作之前 對系統的硬體與軟體運作環境進行必要的初始化 并在最後使程式跳轉到使用者程式 他直接面對ARM處理器核心以及硬體控制器進行程式設計。
S3C2440 支援從 NOR flash 或者 NAND Flash中啟動。NOR Flash 的特點是 程式可以直接在晶片内執行 不必将程式讀取到RAM中運作 NOR FLASH雖有這個優點 但是它的成本效益遠低于NAND FLASH 因為很多系統選擇從NAND FLASH 啟動,從NAND FLASH中啟動需要先把程式拷貝到RAM中去運作。
NOR FLASH啟動: NOR FLASH --》映射到 nGCD0 其位址被映射為0x00000000
NAND_FLASH啟動:S3C2440内部自帶一塊容量為4K的bootSRAM(叫做起步階石“Steppingstone”)映射到nGCS0 其位址被映射為0x00000000
但系統上電或啟動後 程式會從0位址處開始執行 是以我們需要把啟動代碼放在0位址處
NOR FLASH啟動:程式可以在FLASH晶片中 直接被CPU執行 沒有什麼太多說的了
NAND FLASH啟動:上電或複位後 0位址處為bootSRAM 啟動前他裡面是空的 啟動後S3C2440 先通過硬體機制将NANDFLASH的前4K内容拷貝他裡面去 然後再從0位址處開始執行 在這種情況下 我們需要保證将啟動代碼存放在NANDFLASH開始的位置 并且啟動代碼的大小要小于4K
如果系統的所有程式 編譯連結後大小小于4K 那麼系統的啟動代碼中無需考慮将程式從NANDFLASH 搬運到SDRAM 中去執行這個問題 因為所有的程式在啟動時既全部由NANDFLASH 拷貝到了bootSRAM中執行了
如果系統中所編的程式編譯後大于4K 那麼系統的啟動代碼中需要包含一段将系統的全部程式從NANDFLASH 搬運到SDRAM的代碼
系統啟動時 隻将NANDFLASH 的前4K 拷貝到了BootSRAM中,還有部分程式儲存在NAND FLASH中 是無法内執行的 是以前4K被拷貝到BootSRAM中需要有能将程式拷貝到SDRAM中的代碼。
是以從NAND FLASH中啟動 牽涉到兩次拷貝
1:nandflash前4K --> BootSAM 自動 無需人為幹擾
2:從nandflash中搬運系統到SDRAM 需要程式員 控制
//
======================開發闆NAND FLASH 啟動===================================
//這一個真正的全裸代碼。具體原理是這樣的:
//首先是設定到NAND Flash 啟動。當ARM 上電後,會自動讀取NAND Flash
// 0x0000000位址處執行代碼。我們将代碼編譯聯接位址也設為0x0000000
//然後,用Jflash 燒寫時,燒寫到NAND Flash的0x0000000。那麼上電後就會
//執行你的代碼。
1:交叉環境的建立
按照 mini2440使用者手冊,175頁成功設定好 .
2:連上開發闆與PC上的JTAG線.開發闆接上電源,
設定從NAND FLASH啟動.(一定要确定是NAND FLASH啟動)
否則燒寫的時候不成功。
開啟開發闆電源.
=========================開發闆NOR FLASH 啟動================================
編譯u-boot,把編譯生成的新的u-boot.bin燒寫到NorFlash中。開發闆上電啟動後,則在超級終端(或類似的軟體)中顯示的結果為:
U-Boot 2011.06 (Jul 30 2011 - 23:40:44)
DRAM: 64 MiB
Flash: 2 MiB
NAND: raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
raise: Signal # 8 caught
No NAND device found!!!
0 MiB
*** Warning - bad CRC, using defaultenvironment
In: serial
Out: serial
Err: serial
Net: CS8900-0
ZHAOCJ2440 #
從上述顯示的内容可以看出本開發闆的一些基本的資訊,如DRAM為64M,NorFlash為2M,由于我沒有設定NandFlash,是以系統沒有檢測到NandFlash,指令提示符也已經修改為“ZHAOCJ2440 # ”。
總結:nor flash啟動和nand flash啟動都需要選擇啟動方式并把程式燒到相應的flash中。