1 flash如何分区?
见内核配置与编译
系统启动后,在dev目录下,/dev/mtd0,1,2等代表char型设备,mtd0代表flash的第一分区,依次类推;/dev/mtdblock0,1,2代表block型设备,mtdblock0代表flash第一分区,依次类推。
在下述的一些操作flash的命令中,必须区别使用者两种设备。
2在linux系统对flash进行操作
在infradead网站上可以找到mtd-utils的工具包,这个工具包如何下载和安装及使用网上都有,我也保存了下了。但是编译这个包还是好麻烦,需要zlib等等。然后我发现如何我只需要对flash进行erase、write、read等操作,只需要把mtd-utils包里面的几个文件单独拿出来就可以了。
3从mtd-utils包找出几个需要使用的文件
在网站上下载最新的mtd-utils包:mtd-utils-1.3.1.tar.bz2。
找出需要的文件:
flash_erase.c擦除flash扇区
flashcp.c向flash写
flash_eraseall.c擦除某个flash分区,还可以格式化为jffs2文件系统
mtd_debug.c可以擦除、读、写flash,查看flash info,
将这些单独编译后就可以使用了;下面是makefile:
CC = ppc_8xx-gcc
target:
$(CC)
-o flash_erase flash_erase.c
$(CC)
-o flashcp fl