硬汉嵌入式论坛

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

[FatFs] FATFS USB 复用

[复制链接]

9

主题

160

回帖

187

积分

初级会员

积分
187
发表于 2023-3-9 13:58:52 | 显示全部楼层 |阅读模式
请教一下大家,用 SDRAM + ST UBSD 模拟了一个 U 盘,现在板子内部可以通过 FATFS 读写 SDRAM 模拟 U 盘上的文件,电脑端也可以通过 USB 读取 SDRAM 模拟 U 盘 上的文件。
但现在有一个问题:
* 电脑端创建文件或更新文件后,MCU 端可以正常读取
* MCU 端创建文件或更新文件后,电脑端读取的还是原来的内容,没有更新,(大小,修改日期,内容均未改变)
* 重新插拔一下 USB 线后,电脑端读取的才是更新后的内容

看了下电脑 U盘默认缓存不使能,我以为是 RTC 的原因,为 FATFS 添加 RTC,文件添加 “创建时间” 和  “修改时间” 后问题依据

请教一下大家,MCU 端 FATFS 修改文件后如何让电脑端可以识别文件已更改
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-3-9 15:10:40 | 显示全部楼层
处理器没有Cache问题吧

如果没有的话,那只能单片机端控制卸载和重新挂载了,算是个折中办法。估计是单片机端修改了,电脑是并不知道的,也没有人通知他
回复

使用道具 举报

9

主题

160

回帖

187

积分

初级会员

积分
187
 楼主| 发表于 2023-3-11 09:33:29 | 显示全部楼层
Cache 问题应该是没有的,感觉应该是电脑端的问题,我再研究下看,看看怎么能让他动态刷新
回复

使用道具 举报

9

主题

160

回帖

187

积分

初级会员

积分
187
 楼主| 发表于 2023-3-11 10:41:11 | 显示全部楼层
感觉这个问题可能不是很好或很容易解决
刚才用 STLink V2.1,突然想起来这个是 DBG + MSD + VCP 多功能的,就试验了一下用 MSD 拖拽更新固件,更新完成后 STLink 虚拟的 FAT 磁盘也是重新挂载了的,这个时候才能在磁盘内看到本次更新拖拽固件更新的结果,SUCCESS 或 FAILED 名称的文件
回复

使用道具 举报

9

主题

160

回帖

187

积分

初级会员

积分
187
 楼主| 发表于 2023-3-11 14:59:36 | 显示全部楼层
2E646D01-6415-443e-BC14-E99CDAE8A884.png
感觉找到原因了,改用 MTP 试试
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-3-12 03:38:19 | 显示全部楼层
avita 发表于 2023-3-11 14:59
感觉找到原因了,改用 MTP 试试

我记得很多手机插入电脑就是有个MTP媒体访问

https://learn.microsoft.com/zh-c ... ect-your-device/mtp

回复

使用道具 举报

3

主题

11

回帖

20

积分

新手上路

积分
20
发表于 2023-8-21 14:20:12 | 显示全部楼层
能发一下工程代码参考一下吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 08:08 , Processed in 0.295627 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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