【问题标题】:Is it possible to implement DISKCOPY to copy block by block from eMMC volume to USB volume是否可以实现 DISKCOPY 从 eMMC 卷逐块复制到 USB 卷
【发布时间】:2021-08-12 23:38:54
【问题描述】:

我正在使用 STM32、FATFS、SDMMC、eMMC 并在 eMMC 上创建了 FATFS。 我还在 USBH(主机模式)上创建了一个 FATFS 卷。这也很好用。

eMMC FATFS 工作正常,然后我需要将所有文件从 eMMC 复制到 USB 驱动器。通过 FATFS 从 eMMC 逐个文件复制文件耗时太长。

我认为如果我只是盲目地将内存逐块(512字节)从eMMC复制到USBH会更快。所以我实施了足够的例程来做到这一点。问题是复制大约几百块后复制失败。故障似乎是由于 USBH 没有响应。

我的问题是: 1-“是否可以像我尝试那样将原始数据从 eMMC 逐块复制到 USBH?” 2- 有没有人成功做到这一点?

【问题讨论】:

  • 两个驱动器可能有不同的结构,在大多数情况下它不会工作。

标签: usb stm32 fatfs sdmmc


【解决方案1】:

是的,盲目地将一个存储设备的所有块复制到另一个存储设备并期望它能够正常工作是完全正常的。

唯一的问题是设备必须具有相同的块大小,否则您至少必须假装它们具有相同的大小(例如:将每个 4kB 物理块视为八个 512 字节块)。这是因为许多文件系统驱动程序总是假定块大小为 512 字节。

我在这样做时遇到的另一个问题是设备可能会过热(但这不是软件问题)。

【讨论】:

  • 谢谢汤姆!是的,USB 和 eMMC 的块大小都是 512 字节。所以我觉得没问题。起初,我担心坏扇区,这两个设备可能有不同的坏扇区。但是我做了一些挖掘并理解,之所以称为“逻辑单元”是因为设备有自己的映射,并且对于外界来说它们都是连续的扇区。
  • 是的,这两个设备都需要执行磨损均衡,以便它们可以同时映射坏块,而无需额外开销。
  • 如果这解决了您的问题,您能否接受带有左侧勾号的答案?
猜你喜欢
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多