FATFS USB 复用
请教一下大家,用 SDRAM + ST UBSD 模拟了一个 U 盘,现在板子内部可以通过 FATFS 读写 SDRAM 模拟 U 盘上的文件,电脑端也可以通过 USB 读取 SDRAM 模拟 U 盘 上的文件。但现在有一个问题:
* 电脑端创建文件或更新文件后,MCU 端可以正常读取
* MCU 端创建文件或更新文件后,电脑端读取的还是原来的内容,没有更新,(大小,修改日期,内容均未改变)
* 重新插拔一下 USB 线后,电脑端读取的才是更新后的内容
看了下电脑 U盘默认缓存不使能,我以为是 RTC 的原因,为 FATFS 添加 RTC,文件添加 “创建时间” 和“修改时间” 后问题依据
请教一下大家,MCU 端 FATFS 修改文件后如何让电脑端可以识别文件已更改
处理器没有Cache问题吧
如果没有的话,那只能单片机端控制卸载和重新挂载了,算是个折中办法。估计是单片机端修改了,电脑是并不知道的,也没有人通知他 Cache 问题应该是没有的,感觉应该是电脑端的问题,我再研究下看,看看怎么能让他动态刷新 感觉这个问题可能不是很好或很容易解决
刚才用 STLink V2.1,突然想起来这个是 DBG + MSD + VCP 多功能的,就试验了一下用 MSD 拖拽更新固件,更新完成后 STLink 虚拟的 FAT 磁盘也是重新挂载了的,这个时候才能在磁盘内看到本次更新拖拽固件更新的结果,SUCCESS 或 FAILED 名称的文件
感觉找到原因了,改用 MTP 试试 avita 发表于 2023-3-11 14:59
感觉找到原因了,改用 MTP 试试
我记得很多手机插入电脑就是有个MTP媒体访问
https://learn.microsoft.com/zh-cn/windows/iot-core/connect-your-device/mtp
能发一下工程代码参考一下吗?
页:
[1]