mtd-utils 的 使用
关于编译可以查看文章:《Arm-Linux 移植 mtd-utils 1.x》
查看信息
使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd*
cat /proc/mtd
dev: size erasesize name
mtd0: 00c00000 "ROOTFS"
mtd1: "BOOTLOADER"
mtd2: "KERNEL"
mtd3: "NAND ROOTFS partition"
mtd4: 04b00000 "NAND DATAFS partition"
为了更详细了解分区信息用mtd_debug命令
mtd_debug info /dev/mtdX #(不能使用mtdblockX, mtdblockX 只是提供用來 mount 而已) mtd.type = MTD_NORFLASH
mtd.flags =
mtd.size = (12M)
mtd.erasesize = (128K)
mtd.oobblock =
mtd.oobsize =
mtd.ecctype = (unknown ECC type - new MTD API maybe?)
regions =
mtd 有关命令
命令:flash_erase
擦除指定范围内flash的内容;如果不指定,默认擦出起始位置的第一块,使相应flash变为全1
用法:
flash_erase MTD-device [start] [cnt (# erase blocks)] [lock]
MTD-device:待擦出的分区,如/dev/mtd0
start:起始位置设置,这里必须设置为0x20000(128K)的整数倍
cnt: 从start开始计算,要擦出的块数
lock: 写保护
eg: ./flash_erase /dev/mtd0 0x40000 //擦出mtd0分区上从0x40000开始的5块数据 ,128K/块
命令:flash_eraseall
擦除整个分区的数据,同时也会作坏块检测
用法:
flash_eraseall [OPTION] MTD_DEVICE
-q, --quiet 不显示打印信息
-j, --jffs2 一jffs2 格式化分区 eg: ./flash_eraseall -j /dev/mtd0
命令:flashcp
copy 数据到 flash 中
用法:
usage: flashcp [ -v | --verbose ] <filename> <device>
flashcp -h | --help
filename:待写入的数据
device: 写入的分区,如/dev/mtd0 eg:
filename制作: mkfs.jffs2 -e 0x20000 -d cq8401 -o cq8401.img -n //这里的-e 0x20000 必须更你芯片的erasesize 相等 ./flashcp cq8401.img /dev/mtd0 // copy cq8401.img文件系统到 /dev/mtd0分区中
这个命令的功能跟 dd if=/tmp/fs.img of=/dev/mtd0差不多
命令:nandwrite
向nand flash中写数据
用法:
nandwrite [OPTION] MTD_DEVICE INPUTFILE -a, --autoplace Use auto oob layout
-j, --jffs2 force jffs2 oob layout (legacy support)
-y, --yaffs force yaffs oob layout (legacy support)
-f, --forcelegacy force legacy support on autoplacement enabled mtd device
-n, --noecc write without ecc
-o, --oob image contains oob data
-s addr, --start=addr set start address (default is )
-p, --pad pad to page size
-b, --blockalign=|| set multiple of eraseblocks to align to
-q, --quiet don't display progress messages
--help display this help and exit
--version output version information and exit eg: ./nandwrite /dev/mtd0 /tmp/rootfs.jffs2
命令:nanddump
dump出nand flash一些信息,如:block size,erasesize,oobblock 大小,oob data ,page data等;同时也会作坏块检测
用法:
nanddump [OPTIONS] MTD-device
--help display this help and exit
--version output version information and exit
-f file --file=file dump to file
-i --ignoreerrors ignore errors
-l length --length=length length
-o --omitoob omit oob data
-b --omitbad omit bad blocks from the dump
-p --prettyprint print nice (hexdump)
-s addr --startaddress=addr start address eg: ./nanddump -p -f nandinfo.txt /dev/mtd0 //dump出nand flash /dev/mtd0数据并保存到 nandinfo.txt
命令:mtd_debug
对mtd 调试作用
用法:
usage: mtd_debug info <device>
mtd_debug read <device> <offset> <len> <dest-filename>
mtd_debug write <device> <offset> <len> <source-filename>
mtd_debug erase <device> <offset> <len> eg:
./mtd_debug info /dev/mtd0 // 输出/dev/mtd0上的一些信息,这里必须用mtdx
./mtd_debug erase /dev/mtd0 0x0 0x40000 // 擦出/dev/mtd0 分区上 从0x0开始的 , 128K*2 大小的数据
./mtd_debug write /dev/mtdblock0 ox0 0x360810 cq8401.img //向mtdblock0分区,写入 3.6M 大小的文件系统cq8401.img,这里最好用mtdblockx
./mtd_debug read /dev/mtdblock0 ox0 0x360810 read.img //从mtdblock0中读出 3.6M 数据保存到read.img
cmp -l cq8401.img read.img // 验证write to flash 和 read from flash 中的数据是否一致;也可以使用diff命令来比较 另外针对nand flash,mtd_debug这个工具来测试mtd驱动也不是很好,用nandwrite和nanddump这两个工具或许更好点。 然后可以用cmp这个命令来比较一下nanddump出来的数据和nandwrite写入的数据是否一致。
命令:ftl_format
解释:
In order to use one of conventional file systems (Ext2, ext3, XFS, JFS, FAT) over an MTD device,you
need a software layer which emulates a block device over the MTD device. These layers are often called
Flash Translation Layers (FTLs).
参考文章
http://blog.csdn.net/yinkaizhong/archive/2008/12/25/3604794.aspx
http://hi.baidu.com/qwetiop/blog/item/f2acb50f03e800eaab64577a.html
http://blog.chinaunix.net/u1/53103/showart_1101011.html
参考地址(节选)
http://blog.csdn.net/gzshun/article/details/7051425
mtd-utils 的 使用的更多相关文章
- Creating and Flashing UBIFS with MTD Utils
转:http://wiki.atlas-embedded.com/index.php?title=Creating_and_Flashing_UBIFS_with_MTD_Utils Contents ...
- Is an MTD device a block device or a char device?
转:http://www.linux-mtd.infradead.org/faq/general.html#L_mtd_what Note, you can find Ukranian transla ...
- UBIFS - UBI File-System
参考:http://www.linux-mtd.infradead.org/doc/ubifs.html#L_raw_vs_ftl UBIFS - UBI File-System Table of c ...
- 【C#公共帮助类】 Utils 10年代码,最全的系统帮助类
为大家分享一下个人的一个Utils系统帮助类,可能有些现在有新的技术替代,自行修改哈~ 这个帮助类主要包含:对象转换处理 .分割字符串.截取字符串.删除最后结尾的一个逗号. 删除最后结尾的指定字符后的 ...
- python学习笔记-import utils报错
今天遇到一个坑爹的问题,查找了半天原因,终于解决了,在此特地记录一下. 运行环境:Windows eclipse 我在eclipse中配置了python的运行环境,在eclipse中编写python代 ...
- Lind.DDD.Utils.HttpHelper里静态对象引出的Http超时问题
回到目录 Lind.DDD.Utils.HttpHelper组件主要实现了对HTTP的各种操作,如Get,Post,Put和Delete,它属于最纯粹的操作,大叔把它封装的目的主要为了实现与API安全 ...
- Utils
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections.CollectionUtils ...
- Spring @Autowired注解在utils静态工具类
[转] 使用场景:在一个静态方法中,如何使用以下注入: @Autowired private ItemMapper itemMapper; @Component public class TestUt ...
- utils.js
/** * //2.0检测方式(目测,测量,专用仪器测试等) function GetCheckType() { $.ajax({ url: '@Url.Action("GetCheckTy ...
- Perl/Nagios – Can’t locate utils.pm in @INC
While trying to use a Nagios plugin I got an error saying that “Can’t locate utils.pm in @INC”. Foll ...
随机推荐
- 手把手教你如何使用量产工具修复u盘
u盘是我们平时都使用到的一个小工具,我们会使用它来进行储存一些重要的文件,但要是我们操作不当的话,那么就会导致u盘出现一些问题的哟,比如说插入u盘无法打开文件等等,那么遇到这个问题时该这么办呢?那么, ...
- Mosquitto配置----日志设置
https://blog.csdn.net/u012377333/article/details/71101725 # ======================================== ...
- debian9 ps 命令不能用
# cat > /etc/apt/sources.list << EOF> deb http://mirrors.aliyun.com/debian/ stretch main ...
- layui 鼠标悬停单元格显示全部
{field : 'subjectId',title : '主题id',align: 'center',edit : 'text',templet:'<div><span title ...
- Android开发三步骤
产品经理给需求,UI给图片 开发 *写布局文件 *写Java代码 测试
- Python3基础 print 格式化输出 %% 输出%
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- 003-结构型-02-装饰模式(Decorator)
一.概述 装饰( Decorator )模式又叫做包装模式.通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案.他是23种设计模式之一,英文叫Decorator Pattern,又叫 ...
- 标量子查询调优SQL
fxnjbmhkk4pp4 select /*+ leading (wb,sb,qw) */ 'blocker('||wb.holding_session||':'||sb.username||')- ...
- CentOS7下yum安装Redis
(1).Redis概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value(键值型)数据库(非关系型数据库),并提供多种语言的API. Redi ...
- 一个命令永久禁用Win10驱动程序强制签名
https://blog.csdn.net/xiaodingqq/article/details/80093888