flash:qspi nor flash的调试命令

目录

1. uboot下的调试命令

示例:

2. kernel下的调试命令

2.1 sysfs

示例:

2.2 mtd_debug

示例:


1. uboot下的调试命令

sf命令的用法:

 

示例:

==> sf probe 0:0 1000000 0x2103

在进行擦除、读、写nor flash前,必须先进行sf probe,probe成功后才能够进行其他操作。 

==> sf erase 0x700000 +0x100000

 把nor flash中偏移为0x700000,长度为0x100000的区域擦除。

==> mw.b 0x8000000 0x23 0x100
==> md.b 0x8000000 0x100

把数据0x23,写入内存偏移为0x8000000,写入长度为0x100。

把内存偏移为0x8000000,长度为0x100的数据打印出来。

==> sf write 0x8000000 0x700000 0x100

  把内存偏移为0x8000000的数据,写入nor flash中偏移为0x700000,写入长度为0x100。

==> sf read 0x9000000 0x700000 0x200
==> md.b 0x9000000 0x200

把nor flash中偏移为0x700000,长度为0x200的数据读入到内存偏移为0x9000000。

把内存偏移为0x9000000,长度为0x200的数据打印出来。

2. kernel下的调试命令

insmod *.ko后,probe执行完并且识别到nor flash设备后,就可以进行擦除、读、写功能的验证了,主要有两种调试命令。

2.1 sysfs

(1) cat /sys/cdns_qspi/cqspidbg /* dump寄存器或者驱动控制块 */

(2) echo readreg <offset> > /sys/cdns_qspi/cqspidbg /* 读寄存器 */

(3) echo writereg <offset> <value> > /sys/cdns_qspi/cqspidbg /* 写寄存器 */

(4) echo readid 0 > /sys/cdns_qspi/cqspidbg /* 读device id */

(5) echo readstatus 0 > /sys/cdns_qspi/cqspidbg /* 读status/config/flag寄存器 */

(6) echo erase <offset> <length> > /sys/cdns_qspi/cqspidbg /* 擦除指定偏移和长度的sector区域 */                                                                              

/* 从指定偏移位置读指定长度的内容到临时文件 */
(7) echo readdata <offset> <length> > /sys/cdns_qspi/cqspidbg

/* 向指定偏移位置写入指定长度的内容,具体内容由pattern决定 */
(8) echo writedata <offset> <length> <pattern> > /sys/cdns_qspi/cqspidbg
 

示例:

# echo erase 0x700000 0x100000 > /sys/cdns_qspi/cqspidbg

把nor flash中偏移为0x700000,长度为0x100000的区域擦除。

# echo writedata 0x700000 0x100 0x1 > /sys/cdns_qspi/cqspidbg

 把0x1决定的数据,写入nor flash中偏移为0x700000,写入长度为0x100。

# echo readdata 0x700000 0x200 > /sys/cdns_qspi/cqspidbg

把nor flash中偏移为0x700000,长度为0x200的数据读到临时文件中(/tmp/rd.bin)。

# hexdump -C /tmp/rd.bin

查看二进制文件rd.bin。 

2.2 mtd_debug

首先需要rootfs中支持mtd_debug命令。

mtd_debug用法:

 

示例:

# mtd_debug erase /dev/mtd1 0x700000 0x100000

把nor flash(/dev/mtd1)中偏移为0x700000,长度为0x100000的区域擦除。

# mtd_debug write /dev/mtd1 0x700000 0x100 /tmp/rd.bin

 把/tmp/rd.bin文件中的数据,写入nor flash中偏移为0x700000,写入长度为0x100。

# mtd_debug read /dev/mtd1 0x700000 0x200 /tmp/rd_1.bin

把nor flash中偏移为0x700000,长度为0x200的数据读到临时文件中(/tmp/rd_1.bin)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值