使用linux的MTD tests support测试flash性能
在嵌入式linux開發過程中,經常會使用到nor flash,nand flash等存儲設備,由于flash的芯片型號和接口類型較多,性能不一,我們需要對系統中使用的flash性能進行分析,并對設備工作的穩定性進行測試。
flash設備在嵌入式系統中,會被驅動為MTD分區,在linux kernel中,提供了針對MTD的測試模塊,方面開發人員對flash的功能,性能,穩定性等進行測試。
使用make ARCH=arm ?menuconfig打開kernel配置界面,配置?"Device Drivers" -> "Memory Technology Device (MTD) support" -> "MTD tests support",該選項只可以配置為按模塊編譯,保存配置后退出。
使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules編譯代碼,生成測試工具模塊,存儲在目錄drivers/mtd/tests中,包括以下內容:
mtd_nandecctest.ko:nand flash的ECC校驗測試
mtd_pagetest.ko:nand flash的page讀寫測試
mtd_speedtest.ko:MTD分區的讀寫速度測試
mtd_subpagetest.ko:nand flash的sub-page接口測試
mtd_oobtest.ko:nand falsh的OOB區域讀寫測試
mtd_readtest.ko:讀取整個MTD分區
mtd_stresstest.ko:隨機讀寫,擦除操作測試
mtd_torturetest.ko:該功能可用于做穩定性或者壽命測試,隨機操作直到發生錯誤
在實時ko文件進行測試時,可以通過dev=n指定要測試的MTD分區,示例如下:
insmod mtd_stresstest.ko dev=9 count=1000 [ 3289.273771] ================================================= [ 3289.279826] mtd_stresstest: MTD device: 9 [ 3289.284079] mtd_stresstest: MTD device size 268435456, eraseblock size 131072, page size 2048, count of eraseblocks 2048, pages per eraseblock 64, OOB size 64 [ 3289.303250] mtd_stresstest: scanning for bad eraseblocks [ 3289.420267] mtd_stresstest: scanned 2048 eraseblocks, 0 are bad [ 3289.426534] mtd_stresstest: doing operations [ 3289.431031] mtd_stresstest: 0 operations done [ 3339.606972] mtd_stresstest: finished, 1000 operations done [ 3339.612992] =================================================當mtd_stresstest測試發生操作錯誤時,會退出并答應錯誤信息,示例如下:
[root@AT8XXX ~]# dmesg |grep mtd_stresstest [591404.676252] mtd_stresstest: MTD device: 9 [591404.680577] mtd_stresstest: MTD device size 268435456, eraseblock size 131072, page size 2048, count of eraseblocks 2048, pages per eraseblock 64, OOB size 64 [591404.699798] mtd_stresstest: scanning for bad eraseblocks [591404.715081] mtd_stresstest: block 78 is bad [591404.723850] mtd_stresstest: block 159 is bad [591404.812382] mtd_stresstest: block 1752 is bad [591404.832925] mtd_stresstest: scanned 2048 eraseblocks, 3 are bad [591404.839259] mtd_stresstest: doing operations [591404.843859] mtd_stresstest: 0 operations done [591459.037353] mtd_stresstest: 1024 operations done [591510.529876] mtd_stresstest: 2048 operations done[594847.430017] mtd_stresstest: error: write failed at 0xf964000 [594847.436350] mtd_stresstest: error -5 occurred更多mtd test的信息參考 http://www.linux-mtd.infradead.org/doc/general.html
總結
以上是生活随笔為你收集整理的使用linux的MTD tests support测试flash性能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5响应式的插件,Chocolat
- 下一篇: 各个版本的IIS之间的区别 IIS1 ~