在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

關(guān)于nor flash燒寫失敗的原因

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

本文主要是關(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)該考慮這些情況。——《ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通》 李亞峰 歐文盛 等編著 清華大學(xué)出版社 P52 注釋 API Key

性能比較

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的實際應(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和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。Intel于1988年首先開發(fā)出NOR flash技術(shù),徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了NAND flash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且象磁盤一樣可以通過接口輕松升級。但是經(jīng)過了十多年之后,仍然有相當(dāng)多的硬件工程師分不清NOR和NAND閃存。

像“flash存儲器”經(jīng)常可以與相“NOR存儲器”互換使用。許多業(yè)內(nèi)人士也搞不清楚NAND閃存技術(shù)相對于NOR技術(shù)的優(yōu)越之處,因為大多數(shù)情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數(shù)據(jù)存儲密度的理想解決方案。

NOR的特點(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 flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)。

NAND器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),各個產(chǎn)品廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數(shù)據(jù)信息

NAND讀和寫操作采用512字節(jié)的塊,這一點(diǎn)有點(diǎn)像硬盤管理此類操作,很自然地,基于NAND的存儲器就可以取代硬盤或其他塊設(shè)備。

容量成本

NAND flash的單元尺寸幾乎是NOR器件的一半,由于生產(chǎn)過程更為簡單,NAND結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價格。

NOR flash占據(jù)了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8~128MB的產(chǎn)品當(dāng)中,這也說明NOR主要應(yīng)用在代碼存儲介質(zhì)中,NAND適合于數(shù)據(jù)存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC(多媒體存儲卡Multi Media Card)存儲卡市場上所占份額最大。

可靠耐用

采用flash介質(zhì)時一個需要重點(diǎn)考慮的問題是可靠性。對于需要擴(kuò)展MTBF(平均故障間隔時間Mean Time Between Failures)的系統(tǒng)來說,F(xiàn)lash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。

壽命(耐用性)

在NAND閃存中每個塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。NAND存儲器除了具有10比1的塊擦除周期優(yōu)勢,典型的NAND塊尺寸為NOR器件的八分之一,每個NAND存儲器塊在給定的時間內(nèi)的刪除次數(shù)要少一些。

位交換

所有flash器件都受位交換現(xiàn)象的困擾。在某些情況下(很少見,NAND發(fā)生的次數(shù)要比NOR多),一個比特位會發(fā)生反轉(zhuǎn)或被報告反轉(zhuǎn)了。

一位的變化可能不很明顯,但是如果發(fā)生在一個關(guān)鍵文件上,這個小小的故障可能導(dǎo)致系統(tǒng)停機(jī)。如果只是報告有問題,多讀幾次就可能解決了。

當(dāng)然,如果這個位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉(zhuǎn)的問題更多見于NAND閃存,NAND的供應(yīng)商建議使用NAND閃存的時候,同時使用EDC/ECC算法。

這個問題對于用NAND存儲多媒體信息時倒不是致命的。當(dāng)然,如果用本地存儲設(shè)備來存儲操作系統(tǒng)、配置文件或其他敏感信息時,必須使用EDC/ECC系統(tǒng)以確保可靠性。

關(guān)于nor flash燒寫失敗的原因

最近在看國嵌的教學(xué)視頻,在國嵌體驗入門班-2-1(開發(fā)板系統(tǒng)安裝-Jlink方式)一集中,直接燒寫nor flash,不進(jìn)行任何配置的方法,能夠成功純屬偶然!在視頻中燒寫時也出現(xiàn)了兩次錯誤。

我的開發(fā)板是mini2440,如果是其它類型,也可以根據(jù)具體情況參考。

一、解決方案一

1、在網(wǎng)上搜索S3C2440 JLink配置文件下載

2、點(diǎn)擊file -》 open project,選中下載好的初始化工程文件。

3、點(diǎn)擊option -》 project settings選擇Flash,點(diǎn)擊select flash device。選中開發(fā)板對應(yīng)的nor flash芯片型號,我的板子采用得是SST39VF1601 ,這里我選擇SST39VF1601。具體情況參考用戶手冊可以查找到Nor Flash芯片型號。

設(shè)置好前面這些之后,就可以進(jìn)行下面的燒寫工作了,通過這種方式一次燒寫成功。

二、解決方案二

1、選擇Options -》 Project Settings -》 CPU -》 ‘Use following init sequence:’中,默認(rèn)只有一行:

0 reset 0 0ms reset and Halt target

然后選中該行,點(diǎn)擊Edit,修改Delay為2ms,確定即可。

三、解決方案三

1、點(diǎn)擊options--》project settings--》CPU,選擇Use following init sequence 中的Action,把 Reset 改成 Halt 也可以。

但是建議大家最好使用第一種方案。

NOR Flash 燒寫原理

在對FLASH進(jìn)行寫操作的時候,每個BIT可以通過編程由1變?yōu)?,但不可以有0修改為1。為了保證寫操作的正確性,在執(zhí)行寫操作前,都要執(zhí)行擦除操作。擦除操作會把FLASH的一個SECTOR,一個BANK或是整片F(xiàn)LASH 的值全修改為0xFF。在寫的時候要注意每個頁、扇區(qū)、塊的邊界問題。

對Flash讀寫操作流程(W25Q64為例);

1:定義以一個數(shù)組(全局變量),大小為最小擦除緩存,用來對將要擦除區(qū)域數(shù)據(jù)的備份:;

u8 SPI_FLASH_BUF[4096]。

2:定義3個變量用來保存扇區(qū)編號、扇區(qū)偏移地址、扇區(qū)剩余地址;

secpos=WriteAddr/4096;

secoff=WriteAddr%4096;

secremain=4096-secoff;//剩余地址

3:判斷將要寫入Flash的數(shù)據(jù)容量大小,數(shù)據(jù)容量小于剩余地址數(shù),表示可以將所有數(shù)據(jù)寫入Flash,而沒有扇區(qū)邊界問題;如果超過地址數(shù)則要在數(shù)據(jù)容量的邊界位置做個記號。

if(NumByteToWrite《=secremain)secremain=NumByteToWrite;//判斷

4:將數(shù)據(jù)要寫入那個扇區(qū)的所有數(shù)據(jù)讀出,放到緩存中。

5:從扇區(qū)偏移地址起,檢驗即將要寫入的扇區(qū),存儲的舊數(shù)據(jù)是否都為1,否就將整個扇區(qū)擦除,使之全變成1.

6:以扇區(qū)邊界為限,將要寫入的數(shù)據(jù)從扇區(qū)偏移地址起存到緩存區(qū)。

7:將緩存區(qū)的數(shù)據(jù)全部寫入扇區(qū)(寫的時候還要判斷頁邊界的問題,思路和寫扇區(qū)差不多)。

8:判斷數(shù)據(jù)是否全部寫入,(如果要寫入的數(shù)據(jù)容量超過剩余地址,則扇區(qū)編號加1;偏移地址清零;數(shù)據(jù)容量減去之前剩余地址數(shù);修改數(shù)據(jù)容量的地址,把已經(jīng)寫入的數(shù)據(jù)過濾掉;修改即將要寫入存儲單元的地址)

9:返回第4步。

結(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)系本站處理。 舉報投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1637

    瀏覽量

    148124
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7496

    瀏覽量

    163926
收藏 人收藏

    評論

    相關(guān)推薦

    STM32失敗錯誤的處理方法

    STM32失敗錯誤:Contents mismatch at: 08000000H (Flash=FFH Required=00H)
    的頭像 發(fā)表于 06-21 08:55 ?1.3w次閱讀
    STM32<b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>失敗</b>錯誤的處理方法

    如何確定u-boot.bin在nor flash上的地址?

    Warrior TAP +USB的方式,Code Warrior 10.5.1開發(fā)環(huán)境下有RDB板上nor flash的配置信息(P10xx-P20xxRDB_P2020_
    發(fā)表于 06-08 11:42

    jlinknor flash失敗

    我按照步驟 :1. 準(zhǔn)備工作: JLink 的 USB 口接到電腦上, JLink 的 JTAG 口用排線和開發(fā)板的 JTAG 口相連,開發(fā)板設(shè)為 Nor Flash 啟動并上電2. 啟動
    發(fā)表于 04-01 07:45

    如何使用jlink代碼到nor flash___frank?

    請下載附件,附件的說明非常詳細(xì)。1.文檔目的用jlink工具裸機(jī)代碼或者uboot到nor flash2.工具說明由于jlink只能
    發(fā)表于 08-08 03:59

    請問NOR FLASH一定要把2440開關(guān)撥至NOR進(jìn)行才可以嗎?

    大家好,我這里想請教一個問題,裸板程序到NOR時,一定需要把2440開關(guān)撥至NOR進(jìn)行
    發(fā)表于 09-03 04:36

    rk356x maskrom寫過程或后出現(xiàn)異常的主要原因及辦法分析

    1、rk3566/rk3568 異常問題rk356x maskrom寫過程或后出現(xiàn)異常的主要
    發(fā)表于 06-09 16:03

    基于CCS的DSP片外Flash直接設(shè)計

    基于CCS的DSP片外Flash直接設(shè)計 自加載后DSP能夠正常運(yùn)行,關(guān)鍵是Flash中原程序代碼的正確
    發(fā)表于 10-04 09:41 ?3359次閱讀
    基于CCS的DSP片外<b class='flag-5'>Flash</b>直接<b class='flag-5'>燒</b><b class='flag-5'>寫</b>設(shè)計

    FPGA配置– 使用JTAG是如何SPI/BPI Flash的?

    Xilinx的JTAG電纜可以通過FPGA“直接”SPI/BPI。很多對xilinx開發(fā)環(huán)境不熟悉的用戶,如果第一次接觸這種模式可能會有疑惑,F(xiàn)PGA是如何做到JTAG和
    發(fā)表于 02-08 02:40 ?8462次閱讀
    FPGA配置– 使用JTAG是如何<b class='flag-5'>燒</b><b class='flag-5'>寫</b>SPI/BPI <b class='flag-5'>Flash</b>的?

    使用JTAGNand Flash實驗解析

    4.4 實驗內(nèi)容使用JTAGNand Flash 1.實驗?zāi)康?通過使用JTAGFlash
    發(fā)表于 10-18 17:03 ?6次下載
    使用JTAG<b class='flag-5'>燒</b><b class='flag-5'>寫</b>Nand <b class='flag-5'>Flash</b>實驗解析

    CCS的DSP片外Flash直接設(shè)計

    CCS的DSP片外Flash直接設(shè)計
    發(fā)表于 10-20 08:29 ?3次下載
    CCS的DSP片外<b class='flag-5'>Flash</b>直接<b class='flag-5'>燒</b><b class='flag-5'>寫</b>設(shè)計

    如何采用DATA進(jìn)行Flash的在線

    自加載后DSP能夠正常運(yùn)行,關(guān)鍵是Flash中原程序代碼的正確。CCS編譯生成的.out格式文件不能直接用于Flash
    的頭像 發(fā)表于 02-06 08:51 ?3655次閱讀
    如何采用DATA進(jìn)行<b class='flag-5'>Flash</b>的在線<b class='flag-5'>燒</b><b class='flag-5'>寫</b>

    Jlink使用技巧之SPI Flash存儲芯片

    大多數(shù)玩單片機(jī)的人都知道Jlink可以Hex文件,作為ARM仿真調(diào)試器,但是知道能SPI Flash的人應(yīng)該不多,本篇文章將介紹如何
    發(fā)表于 01-26 18:37 ?4次下載
    Jlink使用技巧之<b class='flag-5'>燒</b><b class='flag-5'>寫</b>SPI <b class='flag-5'>Flash</b>存儲芯片

    可供用戶修改的FLASH驅(qū)動介紹

    為方便客戶針對 S698 芯片外接不同種類的 FLASH 進(jìn)行在線編程。V8mon 的 FLASH 提供源碼可以進(jìn)行用戶自行修改。FLASH
    發(fā)表于 06-08 14:39 ?0次下載
    可供用戶修改的<b class='flag-5'>FLASH</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b>驅(qū)動介紹

    Segger J-Flash遇到特定區(qū)域內(nèi)校驗失敗的問題

    最近在支持一個i.MX RT1170歐美客戶,客戶項目里選用了來自Micron的四線NOR Flash - MT25QL256ABA8E12-0AAT作為啟動設(shè)備,一般讀寫倒是沒有問題,但是在 Segger J-Flash
    的頭像 發(fā)表于 10-27 09:02 ?5470次閱讀

    一個關(guān)于Segger J-Flash在Micron Flash固定區(qū)域下載校驗失敗的故事

    接下來就是按客戶操作流程來復(fù)現(xiàn) Segger J-Flash 校驗失敗問題,客戶其實是嘗試寫全部 32MB 數(shù)據(jù)來查看 J-
    的頭像 發(fā)表于 11-01 11:28 ?997次閱讀
    主站蜘蛛池模板: 日韩精品网址| 操到喷水| 日韩午夜r电影在线观看| 伊人涩| 老司机亚洲精品影院在线| 欧美呜巴又大粗又长| 中文字幕卡二和卡三的视频| 羞羞色院91精品网站| 天天操 夜夜操| 色在线视频免费| 夜夜春夜夜夜夜猛噜噜噜噜噜| 你懂的 在线观看| 精品卡1卡2卡三卡免费网站视频 | 俺也来俺也去俺也射| 99在线国产视频| 天天插天天| a一级视频| 国产精品免费看久久久香蕉| good韩国理论在线三级| 国产黄色的视频| 亚洲va老文色欧美黄大片人人| 看视频免费| 狠狠干网站| 日本一卡二卡3卡四卡网站精品| 午夜看黄| 欧美经典三级春潮烂漫海棠红| 国产超爽人人爽人人做| 婷婷亚洲综合一区二区| 真人实干一级毛片aa免费| 色吧综合网| 亚洲成熟| 婷婷久久综合| 欧美zooz人与禽交| yy6080一级毛片高清| 日韩天天操| avbobo在线观看| 亚洲欧美成人| 性欧美高清精品videos| 欧美成人福利| 午夜在线观看视频| 午夜三级理论在线观看视频|