Можно ли реализовать DISKCOPY для копирования блока за блоком с тома eMMC на том USB
Я использую STM32, FATFS, SDMMC, eMMC и создал FATFS на eMMC. Я также создал том FATFS на USBH (режим хоста). Это тоже отлично работает.
EMMC FATFS работает нормально, тогда мне нужно скопировать все файлы с eMMC на USB-накопитель. Копирование файла за файлом с eMMC через FATFS занимает слишком много времени.
Думаю, было бы быстрее, если бы я просто слепо копировал память блок за блоком (512 байт) с eMMC на USBH. Так что я реализовал достаточно рутины для этого. Проблема в том, что копия не удалась после копирования нескольких сотен блоков. По всей видимости, сбой вызван тем, что USBH не отвечает.
Мой вопрос:1- «Можно ли скопировать блочные необработанные данные из eMMC в USBH, как я пытаюсь сделать?» 2- кто-нибудь успешно это делает?
1 ответ
Да, это нормально - слепо копировать все блоки одного устройства хранения на другое и ожидать, что оно заработает.
Единственная загвоздка в том, что устройства должны либо иметь одинаковый размер блока, либо вы должны хотя бы притвориться, что они есть (например: рассматривать каждый физический блок размером 4 КБ как восемь блоков по 512 байт). Это связано с тем, что многие драйверы файловых систем всегда предполагают, что размер блока составляет 512 байт.
Еще одна проблема, с которой я столкнулся при этом, заключается в том, что устройства могут перегреваться (но это не проблема программного обеспечения).