使用命令前用cat /proc/mtd 查看一下mtdchar字符設(shè)備;或者用ls -l /dev/mtd*
dev: size erasesize name
mtd0: 00c00000 00020000 “ROOTFS”
mtd1: 00200000 00020000 “BOOTLOADER”
mtd2: 00200000 00020000 “KERNEL”
mtd3: 03200000 00020000 “NAND ROOTFS partition”
mtd4: 04b00000 00020000 “NAND DATAFS partition”
為了更詳細(xì)了解分區(qū)信息用mtd_debug命令
mtd.type = MTD_NORFLASH
mtd.flags =
mtd.size = 12582912 (12M)
mtd.erasesize = 131072 (128K)
mtd.oobblock = 1
mtd.oobsize = 0
mtd.ecctype = (unknown ECC type – new MTD API maybe?)
regions = 0
命令:flash_erase
作用:擦出指定范圍內(nèi)flash的內(nèi)容,如果不指定,默認(rèn)擦出起始位置的第一塊,使相應(yīng)flash變?yōu)槿?
用法:
flash_erase MTD-device [start] [cnt (# erase blocks)] [lock]
MTD-device:待擦出的分區(qū),如/dev/mtd0
start:起始位置設(shè)置,這里必須設(shè)置為0×20000(128K)的整數(shù)倍
cnt: 從start開(kāi)始計(jì)算,要擦出的塊數(shù)
lock: 寫(xiě)保護(hù)
eg: ./flash_erase /dev/mtd0 0×40000 5 //擦出mtd0分區(qū)上從0×40000開(kāi)始的5塊數(shù)據(jù) ,128K/塊
命令:flash_eraseall
作用:擦出整個(gè)分區(qū)的數(shù)據(jù),同時(shí)也會(huì)作壞塊檢測(cè)
用法:
flash_eraseall [OPTION] MTD_DEVICE
-q, –quiet 不顯示打印信息
-j, –jffs2 一jffs2 格式化分區(qū)
eg: ./flash_eraseall -j /dev/mtd0
命令:flashcp
作用:copy數(shù)據(jù)到 flash 中
用法:
usage: flashcp [ -v | –verbose ]
flashcp -h | –help
filename:待寫(xiě)入的數(shù)據(jù)
device: 寫(xiě)入的分區(qū),如/dev/mtd0
eg:
filename制作:mkfs.jffs2 -e 0×20000 -d cq8401 -o cq8401.img -n //這里的-e 0×20000 必須更你芯片的erasesize 相等
./flashcp cq8401.img /dev/mtd0 // copy cq8401.img文件系統(tǒng)到 /dev/mtd0分區(qū)中
當(dāng)然這個(gè)命令的功能跟 dd if=/tmp/fs.img of=/dev/mtd0差不多
命令:nandwrite
作用:向nand flash中寫(xiě)數(shù)據(jù)
用法:
nandwrite [OPTION] MTD_DEVICE INPUTFILE
-a, –autoplaceUse auto oob layout
-j, –jffs2force jffs2 oob layout (legacy support)
-y, –yaffsforce yaffs oob layout (legacy support)