硬汉嵌入式论坛

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

[RL-FlashFS] 关于RL-Flash里fopen函数返回NULL的疑惑与解决方法.

[复制链接]

1

主题

17

回帖

20

积分

新手上路

积分
20
发表于 2021-9-3 16:14:38 | 显示全部楼层 |阅读模式
本帖最后由 qq371833846 于 2021-9-3 16:51 编辑

V6板子上学习RL-FlashFS的时候,打算使用板子上的W25Q64做载体.于是复制了"基于STM32H7RL-FlashFS V6.X驱动SPI Flash"里的相关代码,主要把里面的SPI1改成V6SPI3,CS改成V6PD13即可
AM$BGHD(G~VT{SU5W~`M.png


按照demo流程依次调用finit初始化,fmount挂载,fformat格式化都能返回fsOK,
然后当调用fopen的时候却一直返回NULL,也就无法进行后面对文件的操作.
由于这文件系统并没有开源,找了老半天也不知道是哪里的问题,
手册里的File System Component 文档也看了个遍.
PXBQI5K1G64EKJ2Q9@})O.png



RTELFN Debug,SFN Debug 都试了也不行.
Y`@~RG(06$@UZC%8JSJMO.png



甚至Event Recorder都看了也找不到问题所在(fopen的时候看它疯狂调用FileAllocRead,貌似在查找要open的文件名)
HW0)SWGH(QZZCN(SB(NVWQA.png



而单纯测试W25QXX.c里的sf_EraseSector,sf_ReadBuffer,sf_WriteBuffer(其实都是调用bsp_spi_flash.c)是都能正常操作spiflash的.
AZ2sS)RNY70(YJ5{O7K87.png



最后实在没办法了,就仔细看了看KEIL自带的N25Q032A flash驱动,这应该和V6W25Q64只有容量上的区别,最终在经过像素级比较后发现端倪:W25QXX.cReadData,ProgramData这两个读写函数返回值是ARM_DRIVER_OK,也就是0,
keilN25Q032A.c里返回的是读写长度.
IGM0]_[S5~778)SJNA9YJN4.png
UUT$`CKH9IL@7)P@K4VLNFL.png



抱着试试看的心理也修改成返回长度
33333.png
8)N(4L1CEY7[[6~$JSSHQTK.png



接着重新调试,
这下调用fopen返回文件指针终于不是NULL
0G69}VOTC0N%LD2{{FO`EVN.png



后续的fwrite,fread,fprintf等函数均能正常使用.
没做大量测试,暂不清楚会不会存在什么Bug,没有V7板子也不清楚为什么没修过也能正常运行.
另我的KEIL MDK5.30,文件系统是6.14.1.

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2021-9-3 16:17:06 | 显示全部楼层
咋没图片????????
回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2021-9-3 16:35:24 | 显示全部楼层
编辑出来后面的图片都乱了,哎.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106585
QQ
发表于 2021-9-4 09:23:56 | 显示全部楼层
非常感谢楼主分享。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106585
QQ
发表于 2021-9-4 09:24:15 | 显示全部楼层
qq371833846 发表于 2021-9-3 16:35
编辑出来后面的图片都乱了,哎.

不乱,整理的非常好。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 16:28 , Processed in 0.268033 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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