日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux nand 坏块_Nand Flash 中的坏块(Bad Block)

發(fā)布時間:2023/12/13 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux nand 坏块_Nand Flash 中的坏块(Bad Block) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Nand Flash 中,一個塊中含有 1 個或多個位是壞的,就稱為其為壞塊 Bad Block。

壞塊的穩(wěn)定性是無法保證的,也就是說,不能保證你寫入的數(shù)據(jù)是對的,或者寫入對了,讀

出來也不一定對的。與此對應(yīng)的正常的塊,肯定是寫入讀出都是正常的。

壞塊有兩種:

(1) 出廠時就有存在的壞塊:

一種是出廠的時候,也就是,你買到的新的,還沒用過的 Nand Flash,就可以包含了壞塊。

此類出廠時就有的壞塊,被稱作 factory (masked) bad block 或 initial bad/invalid

block,在出

廠之前,就會做對應(yīng)的標(biāo)記,標(biāo)為壞塊。

(2) 使用過程中產(chǎn)生的壞塊:

第二類叫做在使用過程中產(chǎn)生的,由于使用過程時間長了,在擦塊除的時候,出錯了,說明

此塊壞了,也要在程序運行過程中,發(fā)現(xiàn),并且標(biāo)記成壞塊的。具體標(biāo)記的位置,和上面一

樣。這類塊叫做 worn-out bad block。即用壞了的塊。

壞塊的標(biāo)記

具體標(biāo)記的地方是,對于現(xiàn)在常見的頁大小為 2K 的 Nand

Flash,是塊中第一個頁的 oob 起

始位置(關(guān)于什么是頁和 oob,下面會有詳細(xì)解釋)的第 1 個字節(jié)(舊的小頁面,pagesize

是 512B 甚至 256B 的 Nand Flash,壞塊標(biāo)記是第 6 個字節(jié)) 如果不是

0xFF,?就說明是壞塊。

相對應(yīng)的是,所有正常的塊,好的塊,里面所有數(shù)據(jù)都是 0xFF 的。

不過,對于現(xiàn)在新出的有些 Nand Flash,很多標(biāo)記方式,有些變化,有的變成該壞塊的第一

個頁或者第二個頁,也有的是,倒數(shù)最后一個或倒數(shù)第二個頁,用于標(biāo)記壞塊的。

具體的信息,請參考對應(yīng)的 Nand Flash 的數(shù)據(jù)手冊,其中會有說明。

對于壞塊的標(biāo)記,本質(zhì)上,也只是對應(yīng)的 flash 上的某些字節(jié)的數(shù)據(jù)是非 0xFF 而已,所以,

只要是數(shù)據(jù),就是可以讀取和寫入的。也就意味著,可以寫入其他值,也就把這個壞塊標(biāo)記

信息破壞了。對于出廠時的壞塊,一般是不建議將標(biāo)記好的信息擦除掉的。

uboot 中有個命令是“nand scrub”就可以將塊中所有的內(nèi)容都擦除了,包括壞塊標(biāo)記,不論

是出廠時的,還是后來使用過程中出現(xiàn)而新標(biāo)記的。一般來說,不建議用這個。

不過,在實際的驅(qū)動編程開發(fā)過程中,為了方便起見,我倒是經(jīng)常用,其實也沒啥大礙,呵

呵。不過呢,其實最好的做法是,用“nand erase”只擦除好的塊,對于已經(jīng)標(biāo)記壞塊的塊,

不要輕易擦除掉,否則就很難區(qū)分哪些是出廠時就壞的,哪些是后來使用過程中用壞的了。

壞塊的管理

對于壞塊的管理,在 Linux 系統(tǒng)中,叫做壞塊管理(BBM,Bad Block

Management) ?,對應(yīng)

的會有一個表去記錄好塊,壞塊的信息,以及壞塊是出廠就有的,還是后來使用產(chǎn)生的,這

個表叫做壞塊表(BBT,Bad Block Table) 。在 Linux 內(nèi)核 MTD 架構(gòu)下的 Nand Flash

驅(qū)動,

和 Uboot 中 Nand Flash 驅(qū)動中,在加載完驅(qū)動之后,如果你沒有加入?yún)?shù)主動要求跳過壞

塊掃描的話,那么都會去主動掃描壞塊,建立必要的 BBT 的,以備后面壞塊管理所使用。

壞塊的比例

而關(guān)于好塊和壞塊,Nand Flash 在出廠的時候,會做出保證:

1.關(guān)于好的,可以使用的塊的數(shù)目達(dá)到一定的數(shù)目,比如三星的

K9G8G08U0M,整個 flash

一共有 4096 個塊,出廠的時候,保證好的塊至少大于 3996 個,也就是意思是,你新買到這

個型號的 Nand Flash,最壞的可能, 有 3096-3996=100 個壞塊。不過,事實上,現(xiàn)在出

廠時的壞塊,比較少,絕大多數(shù),都是使用時間長了,在使用過程中出現(xiàn)的。

2.保證第一個塊是好的,并且一般相對來說比較耐用。做此保證的主要原因是,很多 Nand

Flash 壞塊管理方法中,就是將第一個塊,用來存儲上面提到的 BBT,否則,都是出錯幾率

一樣的塊,那么也就不太好管理了,連放 BBT 的地方,都不好找了,^_^。

一般來說,不同型號的 Nand Flash 的數(shù)據(jù)手冊中,也會提到,自己的這個 Nand Flash,最多

允許多少個壞塊。就比如上面提到的,三星的 K9G8G08U0M,最多有 100 個壞塊。

轉(zhuǎn)自:http://hi.baidu.com/weizhiyuan420/item/506c4cac1b6fefa928ce9df2

總結(jié)

以上是生活随笔為你收集整理的linux nand 坏块_Nand Flash 中的坏块(Bad Block)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。