硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6176|回复: 15
收起左侧

[RL-FlashFS] FlashFS读写SPI Flash W25Q256FV时flashfs传入的读地址大于flash的最大地址导致读失败问题探讨

[复制链接]

20

主题

249

回帖

309

积分

高级会员

积分
309
发表于 2018-9-10 14:20:18 | 显示全部楼层 |阅读模式
如题,使用RTX+RL-FlashFS读写SPI Flash W25Q256FV,该flash共32MB,每页page=256B,每块block=64KB,每扇区sector=4KB

1、FS_SPI_FlashDev.h中为什么要把sector的大小设置为64KB呢?设置成4KB是不是更好呢?【见图1】
2、如果sector设置为64KB,那么对应的EraseSector函数是不是得设置成擦除64KB的,4KB的话就设置成擦除4KB的?
3、我把sector按照硬汉哥的例程设置为64KB,擦除函数也设置为64KB的,堆栈各设置为10KB大小,读写flash的任务堆栈设置为10KB大小,系统无优化,实际测试时格式化,读写3个文件都ok,但是使用命令:【4 - 创建一个text文本并指定一个位置对其进行读写操作】或者【6 - 测试文件读写速度】时程序进入了读的死循环。仿真发现flashfs传入的读地址太大了,从这个地址读不到数据,一直就在这里读了。【见图2】
4、只要出现死循环读后,再次上电,发送命令和第3现象一样了,只能格式化后才能进行读写,然后又是死循环了。为啥会出现这么大的地址呢?


这个问题哪位前辈遇到过给指点下,调试了1天了,还没解决,谢谢了


2018-09-10_131012.png
                             图1
2018-09-10_131056.png
                             图2
2018-09-10_140843.png
                             图3
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
 楼主| 发表于 2018-9-10 14:29:42 | 显示全部楼层

进入死循环后,读地址传入的是0xFFFFFFF4,这个地址是哪里来的啊

2018-09-10_142634.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-9-11 02:35:52 | 显示全部楼层
论坛置顶帖V4网盘,我有发SPI Flash的FlashFS例子,参考了下没。
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
 楼主| 发表于 2018-9-11 08:42:02 | 显示全部楼层
eric2013 发表于 2018-9-11 02:35
论坛置顶帖V4网盘,我有发SPI Flash的FlashFS例子,参考了下没。

就是参考的V4的例程呢
不过V4是W25Q128FV
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-9-11 12:30:57 | 显示全部楼层
小狐狸 发表于 2018-9-11 08:42
就是参考的V4的例程呢
不过V4是W25Q128FV

驱动也用我提供的那个试试。
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
 楼主| 发表于 2018-9-12 09:08:01 | 显示全部楼层
eric2013 发表于 2018-9-11 12:30
驱动也用我提供的那个试试。

试了,还是不行啊。。

64KB的sector能改为4KB吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-9-12 15:09:36 | 显示全部楼层
小狐狸 发表于 2018-9-12 09:08
试了,还是不行啊。。

64KB的sector能改为4KB吗

没问题。
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
 楼主| 发表于 2018-9-14 13:58:18 | 显示全部楼层

恩恩

我的问题终于解决了,原来是我的spiflash驱动发送的地址不对造成的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-9-15 02:06:26 | 显示全部楼层
小狐狸 发表于 2018-9-14 13:58
恩恩

我的问题终于解决了,原来是我的spiflash驱动发送的地址不对造成的

回复

使用道具 举报

11

主题

46

回帖

79

积分

初级会员

积分
79
发表于 2020-3-17 14:25:07 | 显示全部楼层
你好,我也遇到你同样的问题,SPIflash驱动怎么会造成你数据的地址错误呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-3-18 09:38:10 | 显示全部楼层
music1273 发表于 2020-3-17 14:25
你好,我也遇到你同样的问题,SPIflash驱动怎么会造成你数据的地址错误呢

楼主的问题是他的底层驱动错误,地址操作错了。
回复

使用道具 举报

11

主题

46

回帖

79

积分

初级会员

积分
79
发表于 2020-3-18 15:40:57 | 显示全部楼层
您好,我用keil自带的文件系统,初始化和加载都没问题,但是调用fopen的时候不停调用接口的ReadData函数,而且读spi flash的地址也是不对的,16M字节,读flash的地址会很大,比如0XFFFFFFF0
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-3-18 17:07:44 | 显示全部楼层
music1273 发表于 2020-3-18 15:40
您好,我用keil自带的文件系统,初始化和加载都没问题,但是调用fopen的时候不停调用接口的ReadData函数, ...

参考我的吧,估计是底层实现函数有问题。

网盘里面有个RL-FlashFS文件夹,里面有SPI Flash版的,我们的是16MB容量的W25Q系列。

http://www.armbbs.cn/forum.php?m ... 1814&extra=page%3D1
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2021-4-17 23:16:10 | 显示全部楼层
@eric2013, RL-FlashFS+SPI Nor Flash的读写速度一般是多大呢 :)
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2021-4-17 23:19:38 | 显示全部楼层
eric2013 发表于 2020-3-18 17:07
参考我的吧,估计是底层实现函数有问题。

网盘里面有个RL-FlashFS文件夹,里面有SPI Flash版的,我们 ...

@eric2013,@小狐狸, FlashFS读写SPI Flash W25Q256FV时,一般读写速度大概是多少呢 ? :)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2021-4-18 09:48:57 | 显示全部楼层
cradle08 发表于 2021-4-17 23:19
@eric2013,@小狐狸, FlashFS读写SPI Flash W25Q256FV时,一般读写速度大概是多少呢 ? :)

不带文件系统,一般是500KB左右

带上文件系统一般是100KB-200KB
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 01:29 , Processed in 0.229919 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表