0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是nor flash方式打開電源 淺談nor flash原理及應(yīng)用

ss ? 作者:工程師譚軍 ? 2018-09-19 10:42 ? 次閱讀

本文主要是關(guān)于nor flash的相關(guān)介紹,并著重對nor flash打開電源方式及原理應(yīng)用進(jìn)行了詳盡的闡述。

nor flash

nor flash是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)之一。Intel于1988年首先開發(fā)出NOR Flash 技術(shù),徹底改變了原先由EPROM(Erasable Programmable Read-Only-Memory電可編程序只讀存儲器)和EEPROM(電可擦只讀存儲器Electrically Erasable Programmable Read - Only Memory)一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了NAND Flash 結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,有更高的性能,并且像磁盤一樣可以通過接口輕松升級。NOR Flash 的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP ,eXecute In Place),這樣應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR 的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響到它的性能。NAND的結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲密度,并且寫入和擦除的速度也很快。應(yīng)用NAND的困難在于Flash的管理需要特殊的系統(tǒng)接口。通常讀取NOR的速度比NAND稍快一些,而NAND的寫入速度比NOR快很多,在設(shè)計中應(yīng)該考慮這些情況。

flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進(jìn)行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。由于擦除NOR器件時是以64~128KB的塊進(jìn)行的,執(zhí)行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。執(zhí)行擦除時塊尺寸的不同進(jìn)一步拉大了NOR和NAND之間的性能差距,統(tǒng)計表明,對于給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基于NOR的單元中進(jìn)行。這樣,當(dāng)選擇存儲解決方案時,設(shè)計師必須權(quán)衡以下的各項因素。l 、NOR的讀速度比NAND稍快一些。2、 NAND的寫入速度比NOR快很多。3 、NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。4 、大多數(shù)寫入操作需要先進(jìn)行擦除操作。5 、NAND的擦除單元更小,相應(yīng)的擦除電路更少。此外,NAND的實(shí)際應(yīng)用方式要比NOR復(fù)雜的多。NOR可以直接使用,并可在上面直接運(yùn)行代碼;而NAND需要I/O接口,因此使用時需要驅(qū)動程序。不過當(dāng)今流行的操作系統(tǒng)對NAND結(jié)構(gòu)的Flash都有支持。此外,Linux內(nèi)核也提供了對NAND結(jié)構(gòu)的Flash的支持。

什么是nor flash方式打開電源

flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進(jìn)行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。

norflash的啟動方式

電子產(chǎn)品如果沒有了電,就跟廢品沒什么區(qū)別,是電賦予了他們生命,然而程序則是他們的靈魂。

小時候一直很好奇,一個個死板的電子產(chǎn)品為什么一上電以后就能夠工作了呢?為什么一個小小芯片就能夠運(yùn)行我們編寫的程序呢?一個開發(fā)板從剛上電到整個操作系統(tǒng)能夠運(yùn)行起來是怎么辦到的呢?這些東西困擾了好久,參考了好多資料現(xiàn)在才慢慢弄明白其中一些原理。

我們現(xiàn)在接觸的大多數(shù)電子產(chǎn)品都是使用數(shù)字電路設(shè)計出來的,數(shù)字電路的精髓就是兩個數(shù)字:0和1,這兩個數(shù)字千變?nèi)f化的組合創(chuàng)造了計算機(jī)世界的繽紛多彩,不管是cpu、內(nèi)存還是其他外設(shè)都是通過0和1的變化來進(jìn)行記錄、交互以及計算。硬件是怎么操作這兩個數(shù)字以及這兩個數(shù)字是怎么控制硬件工作的,這里不進(jìn)行討論,那都是一些二極管、三極管、與非門、信號放大取樣編碼等等知識,所以這里將對一個個功能完整的芯片,從上電以后,他們通過電信號完成各種操作的過程進(jìn)行解析。如果有玩過單片機(jī)的同學(xué)應(yīng)該知道,一個cpu加上一個電源,然后外接一個外部晶振就能夠做成一個最小系統(tǒng)了,單片機(jī)就能夠在他可憐的64k或者128k內(nèi)存中運(yùn)行起來了,這些簡單的控制芯片雖然有它的存在價值,但是它不能滿足日益復(fù)雜的計算需求,所以需要更快的運(yùn)算速度以及更大的運(yùn)行內(nèi)存,因此我們會用到更復(fù)雜的處理器,比如mips、arm等。下面將使用arm s3c2440 處理器分析上電啟動的過程。

作為一個嵌入式產(chǎn)品,它的多樣性讓它更具有可玩性,以及更容易適應(yīng)不同的需求,它不像我們的PC啟動方式相對比較單一(ROM啟動),arm啟動方式有從norfalsh啟動、nandflash啟動、SD卡啟動和UBS啟動等,但是他們的啟動原理都是大同小異的。

開始之前,先理清幾個概念:

SDRAM(Synchronous Dynamic Random Access Memory):同步動態(tài)隨機(jī)存取存儲器,同步是指Memory工作需要步時鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn);動態(tài)是指存儲陣列需要不斷的刷新來保證數(shù)據(jù)不丟失;隨機(jī)是指數(shù)據(jù)不是線性依次存儲,而是由指定地址進(jìn)行數(shù)據(jù)讀寫,簡單的說,它就是cpu使用的外部內(nèi)存,即我們常說的內(nèi)存條。

SRAM是英文Static RAM的縮寫,它是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲的數(shù)據(jù),速度比SDRAM快,一般用作高速緩沖存儲器(Cache)。

norflash:非易失閃存,是一種外部存儲介質(zhì),芯片內(nèi)執(zhí)行(XIP,eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中,由于它有地址總線,cpu可以直接從norflash中取指,直接從FLASH中運(yùn)行程序,但是工藝復(fù)雜,價格比較貴,容量較?。?~4M),NOR的傳輸效率很高

nandflash:它也是非易失閃存(掉電不丟失)的一種,但是它雖然有數(shù)據(jù)總線,但是沒有地址總線,所以cpu不能直接從nandflash中取指運(yùn)行,由于它價格便宜,所以常常用來存儲大量數(shù)據(jù),和我們常說的硬盤類似。

下面將解析nandflash啟動和norflash啟動兩種方式(arm s3c2440),其他啟動方式將在uboot代碼部分分析。

一、 Nandflash啟動

首先必須把一個正確的bootload燒寫到nandflash的最低位置,即從0x000開始燒寫。當(dāng)我們選擇從nandflash啟動開發(fā)板的時候,開發(fā)板就會啟動連接nandflash的電路結(jié)構(gòu),當(dāng)開發(fā)板一上電的時候,Nand Flash控制器會自動的把Nand Flash上的前4K數(shù)據(jù)搬移到CPU的內(nèi)部RAM中(SRAM-cache),這個內(nèi)部RAM我們通常稱作stepping stone,同時把這段片內(nèi)SRAM映射到nGCS0片選的空間(即0x00000000),CPU從內(nèi)部RAM的0x00000000位置開始啟動(執(zhí)行),這個過程不需要程序干涉的。

這個過程就是啟動過程的stage1,它將nandflash的前4看內(nèi)容拷貝到stepping stone中,然后從stepping stone的第一條指令開始執(zhí)行,這4k內(nèi)容里面的指令將會完成以下幾個動作:

1.硬件設(shè)備初始化

2. 加載U-Boot第二階段代碼到SDRAM空間

3. 設(shè)置好棧

4. 跳轉(zhuǎn)到第二階段stage2代碼入口

從下圖我們可以看到,板子重置以后,內(nèi)存的映射關(guān)系。從圖中可以看到以下幾點(diǎn):

1.剛開始bank0~bank5是只能映射SROM的,而bank6和bank7才能夠接SDRM,而且每個bank最大接128M的SDRM,所以決定了S3C2440的最大可外接SDRAM是256M;

2.從圖中我們可以看到bank6的起始地址是0x3000_0000, 所以我們在執(zhí)行stage1的第二個動作(加載U-Boot第二階段代碼到SDRAM空間)時,需要將uboot代碼放到0x3000_000~0x4000_0000區(qū)間內(nèi)(SDRAM內(nèi)),才能從SDRAM中正常執(zhí)行stage2;

3.當(dāng)沒有選擇從nandflash啟動時,Boot internal SRAM(4k)的起始地址是0x4000_0000, 當(dāng)選擇從nandflash啟動時,Boot internal SRAM(4k)的起始地址是0x00, 因為我們的開發(fā)板沒有外接SROM,所以bank1~bank5都是空閑的,而bank0的位置將被Boot internal SRAM(4k)替代,也就是說bank0的前4k就是stepping stone(起步石),板子上電以后,在nandflash的啟動模式下,S3C2440在硬件上會完成下圖中的地址映射,并自動將nandflash中的前4k拷貝到stepping stone中,并從stepping stone的開始地址(0x00)獲取到第一條指令并執(zhí)行。

經(jīng)過上面的分析后,我們可以將上面兩圖合并成下圖所示:

前面說了nandflash啟動過程中第一個代碼搬移,下面將解析第二個代碼搬移,這4k代碼首先會設(shè)置cpu運(yùn)行模式,關(guān)看門狗,設(shè)置時鐘,關(guān)中斷,初始化內(nèi)存,初始化nandflash,設(shè)置堆棧,然后將整個bootload搬運(yùn)到SDRAM中,并跳轉(zhuǎn)到SDRAM中執(zhí)行。

基本過程如下圖所示:

關(guān)于4k代碼的執(zhí)行過程將會在后面詳細(xì)解釋,而且在新的uboot-2015中,這4k代碼是由uboot_spl.bin完成的,下面將基于uboot-2015.10 列出uboot從上電到啟動內(nèi)核的整個過程進(jìn)行概述:

二、norflash啟動

其實(shí)理解了nandflash的啟動方式,norflash的啟動也就好理解多了,首先需要知道的是norflash是可以在片上執(zhí)行代碼(XIP)的,也就是說,我們只需要將bootload燒寫到norflash的開始地址,當(dāng)開發(fā)板上電以后,從內(nèi)存映射圖可以知道,nor flash會被映射到0x00000000地址(就是nGCS0,這里就不需要片內(nèi)SRAM來輔助了,所以片內(nèi)SRAM的起始地址還是0x40000000,不會改變),然后cpu從0x00000000開始執(zhí)行(也就是在Norfalsh中執(zhí)行)整個uboot,直到引導(dǎo)內(nèi)核啟動。

從norflash啟動可以省事多了,不僅如此,我們自己編寫的裸機(jī)程序需要調(diào)試,一般也是直接燒寫到norflash中進(jìn)行的,因為只要我們將編譯好的可執(zhí)行文件放到norflash的開始,開發(fā)板上電以后就會從norflash的第一條指令開始取指執(zhí)行,我們后面寫裸機(jī)程序的調(diào)試就是用這種方式進(jìn)行的。

從norflash啟動雖然從開發(fā)的角度會很方便(其實(shí)也方便不了多少),但是從產(chǎn)品的角度卻增加了它的成本,畢竟norflash還是相對較貴的,我們明明只要一塊nandflash就足夠啟動整個開發(fā)板了,就沒必要在產(chǎn)品中添加一塊norflash了,只要代碼改改就能省下不少成本,何樂不為。而且nandflash對產(chǎn)品是必不可少的,因為后面還要存放內(nèi)核和文件系統(tǒng),起碼需要幾十兆的空間,用norflash來存儲也不現(xiàn)實(shí)。

也許你會想,能不能只用norflash,不用nandflash和SDRAM行不行呢,畢竟norflash即可以存儲,也可以運(yùn)行程序的啊,從理論來說是可以的,但是了解一下他們的市場價格、運(yùn)行速度和工作原理,應(yīng)該就會知道答案了。

結(jié)語

關(guān)于nor flash的相關(guān)介紹就到這了,如有不足之處歡迎指正。

相關(guān)閱讀推薦:NAND flash和NOR flash的區(qū)別詳解

相關(guān)閱讀推薦:詳細(xì)剖析NorFlash和NandFlash的區(qū)別

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7366

    瀏覽量

    163092
  • NOR flash
    +關(guān)注

    關(guān)注

    2

    文章

    88

    瀏覽量

    22941
收藏 人收藏

    評論

    相關(guān)推薦

    什么是串行Nor Flash?串行Nor Flash的結(jié)構(gòu)和參數(shù)特性

    引言:串行Nor Flash是一類使用比較多的存儲器件,在特殊應(yīng)用場景中具有不可替代的地位,本節(jié)是數(shù)字存儲器件系列第一節(jié),介紹串行Nor Flash的結(jié)構(gòu)和參數(shù)特性。
    的頭像 發(fā)表于 09-05 10:09 ?2863次閱讀
    什么是串行<b class='flag-5'>Nor</b> <b class='flag-5'>Flash</b>?串行<b class='flag-5'>Nor</b> <b class='flag-5'>Flash</b>的結(jié)構(gòu)和參數(shù)特性

    NAND FlashNOR Flash的差別

    NAND FlashNOR Flash 的差別在哪兒呢?從字面意思上看, NAND = not AND(與非),NOR = not OR(或非),也有可能是NMOS AND/OR
    發(fā)表于 09-11 16:59 ?6863次閱讀
    NAND <b class='flag-5'>Flash</b>和<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>的差別

    NAND FLASHNOR FLASH的技術(shù)對比

    目前,NOR FLASH和NAND FLASH是市場上主要的非易失性閃存技術(shù),但是據(jù)我了解,還是有很多工程師分不清NAND FLASHNOR
    發(fā)表于 10-01 14:05 ?1084次閱讀
    NAND <b class='flag-5'>FLASH</b>與<b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b>的技術(shù)對比

    NOR Flash主要廠商及產(chǎn)品

    據(jù)集邦咨詢2020第一季NOR Flash廠商市占數(shù)據(jù),NOR Flash營收市占第一是旺宏,其制程在業(yè)界相對領(lǐng)先,目前采用55nm制程生產(chǎn),月產(chǎn)能約在20K左右。由于該公司
    的頭像 發(fā)表于 11-08 09:26 ?2.5w次閱讀

    旺宏并行串行NOR Flash對比參考指南

    并行NOR Flash每次傳輸多個bit位的數(shù)據(jù),而串行NOR Flash每次傳輸一個bit位的數(shù)據(jù)。并行NOR
    發(fā)表于 03-09 16:06 ?54次下載

    旺宏串行NOR Flash簡介

    串行NOR Flash介紹,串行NOR Flash分類、串行NOR Flash選型以及串行
    發(fā)表于 03-10 14:52 ?30次下載

    nand nor flash區(qū)別

    nand nor flash區(qū)別    NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。Intel于1988年首先開發(fā)出NOR
    發(fā)表于 06-30 16:29 ?1276次閱讀

    NOR FLASH編程指南

    NOR FLASH編程指南,可以下來看看。
    發(fā)表于 12-11 21:31 ?31次下載

    NOR FLASH的原理及應(yīng)用

    VDRF256M16是珠海歐比特公司自主研發(fā)的一種高速、大容量的NOR FLASH,可利用其對大容量數(shù)據(jù)進(jìn)行高速緩存。文中介紹了該芯片的結(jié)構(gòu)和原理,并同時給出了一個系統(tǒng)中大容量、高速數(shù)據(jù)傳輸要求
    發(fā)表于 10-15 12:20 ?23次下載
    <b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b>的原理及應(yīng)用

    NOR Flash供需持續(xù)緊張,中芯長電搶奪NOR Flash測試設(shè)備訂單

    受NAND Flash的擠壓,NOR Flash的市場占有率非常的低,但后續(xù)缺口卻一直沒有補(bǔ)上,因此NOR Flash供需變得極度的緊張,缺
    發(fā)表于 12-14 16:34 ?1321次閱讀

    NAND FlashNOR Flash的區(qū)別

    1.1接口差別NOR Flash帶有SRAM接口,有足夠的地址引腳來尋址,可以直接和CPU相連,CPU可以直接通過地址總線對NOR Flash進(jìn)行訪問,可以很容...
    的頭像 發(fā)表于 12-14 22:48 ?2926次閱讀

    NOR falsh、NAND flash、SDEMMC、QSPI flash、SPI flash

    1、NOR flashNOR flash數(shù)據(jù)線和地址線分開,可以實(shí)現(xiàn)ram一樣的隨機(jī)尋址功能,可以讀取任何一個字節(jié)。但是擦除仍要按塊來擦。2、NAND flashNAND flash數(shù)據(jù)線和地址線
    發(fā)表于 12-02 12:21 ?30次下載
    <b class='flag-5'>NOR</b> falsh、NAND <b class='flag-5'>flash</b>、SDEMMC、QSPI <b class='flag-5'>flash</b>、SPI <b class='flag-5'>flash</b>

    NOR Flash和NAND FLASH的區(qū)別是什么

    使用FlashMemory作為存儲介質(zhì)。 根據(jù)硬件上存儲原理的不同,Flash Memory主要可以分為NOR Flash和NAND FLASH兩類。主要的差異如下所示: NAND
    發(fā)表于 01-25 17:25 ?6.1w次閱讀
    <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>和NAND <b class='flag-5'>FLASH</b>的區(qū)別是什么

    NAND FlashNOR Flash的區(qū)別

    1.1接口差別NOR Flash帶有SRAM接口,有足夠的地址引腳來尋址,可以直接和CPU相連,CPU可以直接通過地址總線對NOR Flash進(jìn)行訪問,可以很容...
    發(fā)表于 01-26 17:12 ?15次下載
    NAND <b class='flag-5'>Flash</b>和<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>的區(qū)別

    NAND FlashNOR Flash的區(qū)別

    NAND FlashNOR Flash是兩種常見的閃存類型。
    的頭像 發(fā)表于 11-30 13:53 ?1993次閱讀
    NAND <b class='flag-5'>Flash</b>和<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>的區(qū)別