NAND FLASH中ECC的原理與錯誤

2021-06-19 17:57:30 字數 613 閱讀 2475

向nand flash寫資料時,每256或512位元組會生成乙個校驗碼寫在每個page的oob區,當從nand flash讀資料時,每讀取256或512位元組資料,也會生成乙個ecc校驗碼,拿這個校驗碼與存放在oob區的校驗嗎對比看看是否一致,就可以知道讀取的資料是否正確.

一般來說,kernel與cramfs是通過u-boot燒寫到nand flash中,這個過程是向nand flash寫資料,會產生ecc碼,使用的是u-boot的ecc機制產生的(不管是硬體產生還是軟體產生),然後這些ecc碼會存放在nand flash的oob區域。

當你啟動kernel時,會從nand flash中讀資料,這是時候也會產生ecc碼。使用的還是u-boot的ecc機制產生的,因為這個讀nand操作是還是處在u-boot執行狀態下。然後這個ecc碼與寫kernel時產生的ecc碼(儲存在oob區域)做比較,看是否有錯誤。由於寫kernel與讀kernel都用的是u-boot的ecc產生機制,所以一般不會出錯。

但你讀cramfs時,這個時候已經是核心狀態啦。所以讀cramfs時用的kernel的ecc產生機制,前面寫cramfs用的u-boot機制,如果兩種機制不一致(包括乙個是硬體產生,乙個是軟體產生,或是軟體產生演算法不一樣,或是oob區域規劃不一樣),就會產生錯誤。

Nor flash 以及nandflash原理總結

一 nor flash 1.nor flash的簡單介紹 nor flash是很常見的一種儲存晶元,資料掉電不會丟失。nor flash支援execute on chip,即程式可以直接在flash片內執行。這點和nand flash不一樣。因此,在嵌入是系統中,nor flash很適合作為啟動程式...

NANDFLASH 中的Bad Block管理

1.skip block method 跳過壞塊方式 這種方法通俗易懂。這個演算法開始之前先讀取儲存器內的所有備用區域。那些被標 識成 bad block 的位址都被收集起來。接下來,資料被連續的寫入目標 flash 器件。當 目標位址與先前收集的 bad block 位址一致時,跳過壞塊,資料被寫...

nandflash中TACLS的設定

下圖自s3c2440 圖1 cle ale時序圖 圖2 nwe和nre時序圖 從s3c2440手冊中我們可以得到 由圖1可知 tacls為cle ale有效到nwe有效之間的持續時間 twrph0為nwe的有效持續時間 twrph1為nwe無效到cle ale無效之間的持續時間。這些時間都是以hcl...