硬汉嵌入式论坛

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

[其它] 三星内存芯片K9F1208UOB其上的fatfs

[复制链接]

16

主题

33

回帖

81

积分

初级会员

积分
81
发表于 2022-7-22 15:14:44 | 显示全部楼层 |阅读模式
各位同仁好,我这里碰到了一个问题,请大家帮助分析一下原因:
硬件平台为stm32f103vet6+一片nandflah(k9f1208uob),我要将fatfs移植到其上面,
目前底层读写单扇区及多扇区都无任何问题,就是在f_mount(&fs, FS_VOLUME_NAND, 0);
之后,用函数 f_open(&file, "1:srcfile.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE)写入几个字节;
之后在串口上也显示文件srcfile.txt写入成功,但是我在串口读取文件都是空的,没有这个文件,
另外用强制挂载f_mount(&fs, FS_VOLUME_NAND, 1);总是返回FR_NOT_READY 这是怎么个事情?谢谢大家了

回复

使用道具 举报

6

主题

639

回帖

657

积分

金牌会员

积分
657
QQ
发表于 2022-7-22 20:43:03 | 显示全部楼层
FATFS不支持坏块管理,直接上levelx+filex吧,论坛上好像有人分享过
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2022-7-23 00:44:03 | 显示全部楼层
fatfs的话,可以移植个nand的nftl层,可以移植levelx,否则fatfs没法实现ecc校验,坏块管理和擦写均可。

当然也可以使用flashfs,filex等,这个都有很多现成的案例参考,楼主有需要发你下载链接。
回复

使用道具 举报

16

主题

33

回帖

81

积分

初级会员

积分
81
 楼主| 发表于 2022-7-23 06:44:47 | 显示全部楼层
多·谢大侠们的及时回复,另外请管理员朋友发我一下链接吧,我的邮箱932985865@qq.com,再次感谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2022-7-23 09:54:41 | 显示全部楼层
jsy1_sjw2 发表于 2022-7-23 06:44
多·谢大侠们的及时回复,另外请管理员朋友发我一下链接吧,我的邮箱,再次感谢

【原创开源应用第2期】基于RL-USB和RL-FlashFS的完整NAND解决方案,稳定好用,可放心用于产品批量
https://www.armbbs.cn/forum.php? ... 7118&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

16

主题

33

回帖

81

积分

初级会员

积分
81
 楼主| 发表于 2022-7-26 14:44:59 | 显示全部楼层
我的应用层程序如下:
1.NAND_Format();
2.result = f_mount(&fs, FS_VOLUME_NAND, 0);
3.result = f_mkfs("1:",0,512);
4.result = f_open(&file, "1:srcfile.txt", FA_CREATE_ALWAYS | FA_WRITE);
5.写入数据:result = f_write(&file, "2022-07-26  FatFS Write Demo \r\n ", 24, &bw);
6.f_close(&file);
我这里试验的结果就是没有任何文件建立,另外如单独对nandflash试验k9f1208的多扇区写、读都无问题,实在搞不清哪里出错了,加入fatfs后仿真,出现FR_NO_FILESYSTEM,但我用winhex观察第63个扇区前90个字节如下:0xeb 0xfe 0x90 0x4d 0x53 0x44 0x4f 0x53 0x35 0x2e 0x30 0 0x2 0x40 0x20 0 0x1 0 0 0 0 0xf8 0 0 0x3f 0 0xff 0 0x3f 0 0 0
0x79 0x3 0 0x20 0x1 0 0x1 0 0 0 0 0 0x2 0 0 0 0x1 0 0x6 0 0 0 0 0 0 0 0 0 0 0 0 0
0x80 0 0x29 0 0 0xe2 0x44 0x4e 0x4f 0x20 0x4e 0x41 0x4d 0x45 0x20 0x20 0x20 0x20 0x46 0x41 0x54 0x33 0x32 0x20 0x20 0x20 。卡住好多天了,请高手指教万分感谢,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2022-7-28 09:14:41 | 显示全部楼层
jsy1_sjw2 发表于 2022-7-26 14:44
我的应用层程序如下:
1.NAND_Format();
2.result = f_mount(&fs, FS_VOLUME_NAND, 0);

NFTL层移植了没
回复

使用道具 举报

16

主题

33

回帖

81

积分

初级会员

积分
81
 楼主| 发表于 2022-7-28 10:23:08 | 显示全部楼层
eric2013朋友,您好,我是移植了fatfs32在nandflash上,另外我写入一段话,我在扇区0x461上确实看到这些数据了,没有问题,但是用上层读,却没有东西,我整理一下把有关的部分发给您,有时间请帮看一下
回复

使用道具 举报

4

主题

11

回帖

23

积分

新手上路

积分
23
发表于 2022-10-30 22:21:47 | 显示全部楼层
楼主的问题解决了吗??我也碰到一样的问题卡了很久
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-10-31 15:36:16 | 显示全部楼层
关闭文件前调用一下f_sync
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-10-31 15:37:15 | 显示全部楼层
关闭文件前调用一下f_sync试试看
回复

使用道具 举报

16

主题

33

回帖

81

积分

初级会员

积分
81
 楼主| 发表于 2023-1-31 08:38:44 | 显示全部楼层
sunyata 发表于 2022-10-31 15:37
关闭文件前调用一下f_sync试试看

朋友你好,我的问题没有解决,上班伊始,再开始测试,用函数f_sync结果没有变化,估计要集中精力在DBP和BPB中仔细推敲。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 06:55 , Processed in 0.414794 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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