uboot sf 命令用法

6 篇文章 0 订阅

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


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

sf write写内存数据到flash

sf erase 擦除指定位置,指定长度的flash内容, 在进行写flash的时候一定要先进行擦除,否则会失败,因为flash只能从1变为0。


具体用法

sf - SPI flash sub-system

Usage:
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 memory
                                  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 0

在使用sf的其他命令之前必须先进行此操作进行连接flash。否则会出现如下情况。

 

sf write 0x82000000 0x8000 0x20000

把内存0x8200 0000处的数据, 写入flash的偏移0x80000, 写入数据长度为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级的读写操作, 支持随机访问.


如何查看flash的内容

可以结合uboot md命令查看内存数据

md 0x82000000 0x100

如下操作

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值