linux mtd

一、参考资料

转载自嵌入式文件系统简介(一) — Linux MTD设备文件系统

在嵌入式系统中,与文件系统相关的存储设备包括硬盘、Flash存储器等。Flash存储器又分为Flash芯片设备(Raw Flash device,也叫MTD设备)和带Flash控制器的设备(Flash Translation Layer device, FTL设备),两者的关键区别是是否带有Flash控制器,这也直接决定了文件系统分为不同的两类。

在这里插入图片描述

其中MTD设备包括NOR Flash、NAND Flash等,FTL设备包括SD、eMMC、SSD、USB大容量存储设备等。如图所示JFFS2、YAFFS2、UBIF、LogFS支持MTD设备,FAT、EXT3/4、XFS和Btrfs支持 FTL设备和硬盘(HDD)。MTD设备对应的设备文件为/dev/mtd,FTL设备对应的设备文件可为/dev/mtdblock。
在这里插入图片描述
在这里插入图片描述

二、mtd-utils 工具

mtd-utils需要预先编译进linux_rootfs中,否则没有这些命令。

1.使用 cat /proc/mtd 命令查看QSPI FLASH的分区信息

root@zedboard:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00500000 00010000 "boot"
mtd1: 00020000 00010000 "bootenv"
mtd2: 00a80000 00010000 "kernel"
mtd3: 01060000 00010000 "spare"

2.使用 mtd_debug info /dev/mtd0 命令查看FLASH类型、分区大小、块大小

root@zedboard:~# mtd_debug info /dev/mtd0
mtd.type = MTD_NORFLASH
mtd.flags = MTD_CAP_NORFLASH
mtd.size = 5242880 (5M)
mtd.erasesize = 65536 (64K)
mtd.writesize = 1
mtd.oobsize = 0
regions = 0

3.使用 flash_eraseall /dev/mtd1 擦除选择的某个mtd分区。

root@zedboard:~# flash_eraseall /dev/mtd1
flash_eraseall has been replaced by `flash_erase <mtddev> 0 0`; please use it
Erasing 64 Kibyte @ 10000 -- 100 % complete

4.使用 flashcp -v BOOT.BIN /dev/mtd0 更新linux系统固件

更新U-BOOT。(对于ZYNQ,打包FSBL、BIT流、U-BOOT成BOOT.BIN,放在mtd0分区)

root@zedboard:~# flashcp -v firmware/BOOT.BIN /dev/mtd0
Erasing blocks: 7/7 (100%)
Writing data: 395k/0k (100%)
Verifying data: 395k/0k (100%)

更新image.ub内核。

root@zedboard:~# flashcp -v firmware/image.ub /dev/mtd2
Erasing blocks: 1/58 (1%)random: crng init done
Erasing blocks: 58/58 (100%)
Writing data: 3674k/0k (100%))
Verifying data: 3674k/0k (100%))

更新jffs2根文件系统。

root@zedboard:~# flashcp -v firmware/rootfs.jffs2 /dev/mtd3
Erasing blocks: 104/104 (100%)
Writing data: 6656k/0k (100%))
Verifying data: 6656k/0k (100%))

5.使用 mtd_debug read /dev/mtd0 0x0 0x20000 读取出FLASH中的数据,确认是否刷写成功

root@zedboard_jffs2:~# mtd_debug read /dev/mtd0 0x0 0x20000 ~/test
Copied 131072 bytes from address 0x00000000 in flash to /home/root/test

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ta o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值