|
mtd_debug是一個linux下直接讀寫flash扇區(qū)的工具,是mtd-utils的一個部件。具體用法如下:
./mtd_debug read <device><offset> <dest-filename> <len> ./mtd_debug write <device><offset> <source-filename> [len] ./mtd_debug erase <device><offset> <len> 具體使用舉例:./mtd_debug erase/dev/mtd/1 0x0 0xc00000 :表示擦寫了0x34300000 ~ 0x34f00000共12MB的空間。
以上命令格式中“device”是指/dev/mtd/0,1,2這種mtd char 設備,不要操作/dev/mtdblock/0,1,2這種塊設備。也就是說:mtd是字符設備,mtdblock是塊設備,它們映射的是同一個空間;但是我們在擦寫的時候就是操作字符設備,這個請注意。 以上不管是write哪一塊,都建議先erase,再write,否則可能導致write失敗
mtd_debug的獲取或者說交叉編譯mtd_utils 1.獲得源碼 root@:/home/# wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.2.0.tar.bz2 root@:/home/# wget http://www./zlib-1.2.3.tar.gz root@:/home/# wget http://www./opensource/lzo/download/lzo-2.03.tar.gz root@:/home/# tar xzvf zlib-1.2.3.tar.gz root@:/home/# tar xzvf lzo-2.03.tar.gz root@:/home/# tar xzvf mtd-utils-1.2.0.tar.bz2 說明:zlib和lzo是編譯mtd-utils所需庫文件,需提前交叉編譯完成,以供mtd-utils編譯時調(diào)用 2,編譯安裝zlib: root@:/home/# cd zlib-1.2.3 root@:/home/zlib-1.2.3# CC=arm-linux-gcc ./configure --shared --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi root@:/home/zlib-1.2.3# make root@:/home/zlib-1.2.3# make install root@:/home/zlib-1.2.3# cd ..
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi 為交叉編譯器路徑
3,編譯安裝lzo: root@:/home/# cd lzo-2.03/ root@:/home/lzo-2.03# CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi root@:/home/lzo-2.03# make root@:/home/lzo-2.03# make install root@:/home/lzo-2.03#
4,編譯mtd-utils
1) 修改Makefile CROSS=arm-linux-
2) make WITHOUT_XATTR=1 在這里會提示沒有定義AI_ADDRCONFIG,在文件頭部加入定義#define AI_ADDRCONFIG 0x0020 就可以了 到這里還是有錯誤提示。不過沒有關系。mtd_debug已經(jīng)出來了。靜靜的躺在arm-linux目錄下面鳥。
|