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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

windows

Nand Flash Yaffs系统大量写入数据失败问题的解决方法。

發(fā)布時(shí)間:2023/12/10 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nand Flash Yaffs系统大量写入数据失败问题的解决方法。 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)朋友的問(wèn)題,我們共同分析后搞定。其實(shí)以前也遇到過(guò)同樣問(wèn)題,時(shí)間長(zhǎng)了,沒(méi)總結(jié)。

?

事發(fā):在Nand Flash上使用2.6.14的linux kernel,三星2440的板子,連續(xù)寫入文件,到一定大小限制就刪除,文件寫入沒(méi)有超過(guò)flash保留10%的空閑,應(yīng)該說(shuō)還差很多。

?

第一步,不適用syslog寫,換做自己寫代碼寫入,出現(xiàn)幾率降低;

第二步,fwrite換成write,幾率增加,很快就壞。

?

壞的時(shí)候提示:yaffs tragedy: no more eraased blocks !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!

?

重新啟動(dòng),就會(huì)標(biāo)出很多壞塊(bad block...),當(dāng)然是假的,一格式化,就好。

?

第三步,朋友說(shuō)用2.6.34的內(nèi)核,沒(méi)有問(wèn)題,但從14移到34,需要修改的驅(qū)動(dòng)之類太多,數(shù)據(jù)結(jié)構(gòu)變化太大。

第四步,我想起以前說(shuō)起nand時(shí)候mtd校驗(yàn)和yaffs校驗(yàn)不能同時(shí)開(kāi)啟。

第五步,讓在14內(nèi)核上關(guān)閉yaffs軟校驗(yàn),開(kāi)啟mtd nand硬件校驗(yàn),出現(xiàn):mtd ecc error unfixed on chunk 26784

第六步,14內(nèi)核,關(guān)閉mtd nand硬件校驗(yàn),使用yaffs軟校驗(yàn),出現(xiàn): VFS: Mounted root (cramfs filesystem) readonly. Mounted devfs on /dev Freeing init memory: 108K Error -3 while decompressing! c02ccb50(312)->c3cc0000(4096) Failed to execute /linuxrc. Attempting defaults... Kernel panic - not syncing: No init found. Try passing init= option to kernel.

然后,想了想。

34可以,14同樣的配置不可以,應(yīng)該是軟件差異。查看14下yaffs的版本,挺老。朋友說(shuō)34下的yaffs拿過(guò)去編譯無(wú)法通過(guò)。

我從這邊使用的18內(nèi)核摳出來(lái)yaffs部分給他,這個(gè)yaffs是:

Id: yaffs_mtdif.c,v 1.22 2009/03/06 17:20:51 wookey Exp $";

編譯,還是有一個(gè)頭文件(linux/uaccess.h)找不到,屏蔽之,OK。

再編譯,使用mtd的硬nand ecc,關(guān)閉yaffs own ecc,測(cè)試,OK,寫文件OK,寫入斷電 OK。

總結(jié):主要就是兩種ECC沖突的事情,yaffs官網(wǎng)上寫道:

Nand interface: For yaffs to function, it must be able to be the only code that writes to the oob area on the NAND device. The existing NAND driver in kernel 2.4.19 assumes that it will do the ecc/oob management for the host fs. For yaffs, this is quite wrong. You can disable ecc/oob calculations either by hand patching the mtd code to bypass ecc calculations or by merging the latest mtd cvs.

當(dāng)然這針對(duì)2.4的內(nèi)核,莫非2.6也濤聲依舊?

總結(jié)

以上是生活随笔為你收集整理的Nand Flash Yaffs系统大量写入数据失败问题的解决方法。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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