uboot sf 命令用法

uboot中如果支持spi/qspi flash, 那么可以使用sf的erase, read, write命令操作spi flash


sf read用来读取flash数据到内存

sf write写内存数据到flash

sf erase 擦除指定位置,指定长度的flash内容, 擦除后内容全1


具体用法

sf probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus and chip select

sf read addr offset len              - read `len' bytes starting at`offset' to memory at `addr'

sf write addr offset len             - write `len' bytes from memor at `addr' to flash at `offset'

sf erase offset [+]len                - erase `len' bytes from `offset' `+len' round up `len' to block size

sf update addr offset len         - erase and write `len' bytes from memory at `addr' to flash at `offset'


使用范例

sf probe

在使用sf read sf write之前,一定要调用sf probe


sf write 0x82000000 0x0 0x20000

把内存0x8200 0000处的数据, 写入flash的偏移0x0, 写入数据长度为0x20000(128KB), 操作偏移和长度最小单位是Byte


sf read 0x82000000 0x10000 0x20000

把flash偏移0x10000(64KB)处, 长度为0x20000(128KB)的数据, 写入到内存0x82000000, 操作偏移和长度最小单位是Byte


sf erase 0x0 0x10000

擦除偏移0x0处, 到0x10000之间的擦除块, 擦除操作是以erase block为单位的, 要求offset和len参数必须是erase block对齐的


从sf命令,可以看出几点:

1. spi flash没有oob数据存在, 也就是不用考虑EDC ECC, 也没有坏块管理概念.

2. 支持Byte级的读写操作, 支持随机访问. 


如何验证读写效果

可以结合uboot md命令, sf read, sf write都涉及到内存操作, 可以用md查看内存数据

md 0x82000000 0x100

打印0x82000000开始, 长度范围256字节的内存数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值