Василий Зыков
Dec 19 2017, 08:58
Уважаемые коллеги!
Подключил к своему проекту библиотеку FatFS, написал процедуры инициализации, чтения и записи. Все работает. Карта инициализируется, данные записываются и читаются.
Но при попытке прочитать существующий файл с карты памяти типа SD Объемом 2 Гб вызывает ошибку (код возврата - FR_NO_FILESYSTEM). При этом такая ситуация возникает
со всеми картами памяти данного объема. Карты типа SDHC Объемом 4 и 8Гб работают нормально.
Быть может, кто-то встречался с такой проблемой?
Заранее благодарен за любые идеи и подсказки!
MiklPolikov
Jan 7 2018, 04:47
Для карт 2 и 4ГБ нужны разные процедуры чтения-записи.
В карте 2 ГБ тот адрес, который Вы передаёте в карту, -это физический адрес, который считается в байтах.
В карте более 2ГБ это номер сектора, т.е. физический адрес / 512
И вот поэтому просто чтение-запись у Вас работает, хоть и пишет не туда, куда Вы думаете. А когда нужно прочитать FAT, её там не оказывается.
Перед работой с картой, во время её инициализации, нужно выяснять, что это за карта. Так же полезно выяснять макс. скорость.