用QSPI驱动W25Q128.驱动应该没问题。但是读取的时候,数据超过512K就会失败。
512K以内就正常,1M就失败。
我把FLASH分区,一个512K分区,一个1M分区,同时跑fal bench。结果如下:
```
msh />fal bench 4096 yes
Erasing 524288 bytes data, waiting...
Erase benchmark success, total time: 1.896S.
Writing 524288 bytes data, waiting...
Write benchmark success, total time: 2.048S.
Reading 524288 bytes data, waiting...
Read benchmark success, total time: 0.144S.
msh />fal probe update2
Probed a flash partition | update2 | flash_dev: norflash0 | offset: 1048576 | len: 1048576 |.
msh />fal bench 4096 yes
Erasing 1048576 bytes data, waiting...
Erase benchmark success, total time: 3.844S.
Writing 1048576 bytes data, waiting...
Write benchmark success, total time: 4.096S.
Reading 1048576 bytes data, waiting...
585728 3057 f1 ff.
585728 3058 f2 ff.
585728 3059 f3 ff.
...
...
585728 4090 fa ff.
585728 4091 fb ff.
585728 4092 fc ff.
585728 4093 fd ff.
585728 4094 fe ff.
Data check ERROR! Please check you flash by other command.
Read benchmark has an error. Error code: -1.
This operate has an error. Error code: -1.
msh />
```
不知道什么原因。
而且分区擦除和写入都成功了,读取失败了!
```
msh />sf probe qspi20
[I/SFUD] Find a Winbond flash chip. Size is 16777216 bytes.
[I/SFUD] sf_cmd flash device is initialize success.
[I/SFUD] Probe SPI flash sf_cmd by SPI device qspi20 success.
16 MB sf_cmd is current selected device.
msh />sf bench yes
Erasing the sf_cmd 16777216 bytes data, waiting...
Erase benchmark success, total time: 41.318S.
Writing the sf_cmd 16777216 bytes data, waiting...
Write benchmark success, total time: 65.537S.
Reading the sf_cmd 16777216 bytes data, waiting...
Data check ERROR! Please check you flash by other command.
Read sf_cmd failed, already rd for 788480 bytes, read 256 each time
Read benchmark has an error. Error code: 3.
This flash operate has an error. Error code: 3.
```
我单独做sf bench测试正片flash,也失败了,但是,我测试fal read write少量数据读写都正常。用sf 的read write也正常。
|