Перейти к содержанию
    

FatsFs и разделы

Здравствуйте.

 

Столкнулся с проблемой в работе fatfs. Необходимо сделать два раздела, выполняя данную функцию пошагово все работает, разделы создаются. Если же я делаю это без пошагового режима (вставил флешку и думаешь что сработало), то разделов нет. Такое чувство, что операции просто не выполняются (не останавливаются, как следовало бы ожидать для работы функции mkfs)

 

PARTITION VolToPart[] = {
    {1, 1},    
    {1, 2},    
};

void test()
{
    FATFS dialogFS;
    FRESULT rc;
    BYTE work[_MAX_SS];

    rc = disk_initialize(1);
    DWORD plist[] = {80, 20, 0, 0};
    rc = f_fdisk(1, plist, work);    

    rc = f_mount(&dialogFS, "0:", 0);  
    rc = f_mkfs("0:", 0, 0);        
    rc = f_mount(0, "0:", 0);        

    rc = f_mount(&dialogFS, "1:", 0); 
    rc = f_mkfs("1:", 0, 0);        
    rc = f_mount(0, "1:", 0);    
}

 

В чем может быть проблема?

Изменено пользователем deplen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. ...В чем может быть проблема?

 

похоже на тайминги. попробуйте поиграться с задержками и проверьте код самой FS.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

похоже на тайминги. попробуйте поиграться с задержками и проверьте код самой FS.

 

использовал последнюю версию библиотеки...попробую на предыдущей

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выставил задержку перед вызовом функции f_mkfs() и все заработало

 

Странно, задержки должны быть в реализации самой функции. А какой код возвращали функции ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выставил задержку перед вызовом функции f_mkfs() и все заработало

У меня то же самое, работаю с SD картами. Задержку требует SD карта. По-моему ей нужно "подумать" перед запросом о количестве секторов, который происходит при f_mkfs

 

Вопрос :

Кто-нибудь сталкивался с тем, что FATfs не видит файловую систему на только что купленных SD картах ? Форматирование в Windows ситуацию не меняет. После форматирования функциями самой FATfs карта работает и в FATfs и в Windows. После нового форматирования в Windows продолжает работать и в FATfs . Почему так происходит, в самых общих чертах понятно. Но хочется , что бы FATfs работала со всеми картами изначально. Может надо что-то в настройках FATfs изменить ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Почему так происходит, в самых общих чертах понятно....

 

OFF/2:

Думаю надо начинать обсуждение с того чего понятно :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

OFF/2:

Думаю надо начинать обсуждение с того чего понятно :)

 

Думаю, это связано с положением FAT относительно начала адресного пространства. Помню, там есть разные варианты размещения, видимо какой-то из них FATfs не поддерживает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...