deplen 0 Posted May 12, 2014 (edited) · Report post Здравствуйте. Столкнулся с проблемой в работе 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); } В чем может быть проблема? Edited May 12, 2014 by deplen Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kolobok0 0 Posted May 12, 2014 · Report post Здравствуйте. ...В чем может быть проблема? похоже на тайминги. попробуйте поиграться с задержками и проверьте код самой FS. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
deplen 0 Posted May 13, 2014 · Report post похоже на тайминги. попробуйте поиграться с задержками и проверьте код самой FS. использовал последнюю версию библиотеки...попробую на предыдущей Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
deplen 0 Posted May 21, 2014 · Report post выставил задержку перед вызовом функции f_mkfs() и все заработало Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RED_BULLok 0 Posted June 27, 2014 · Report post выставил задержку перед вызовом функции f_mkfs() и все заработало Странно, задержки должны быть в реализации самой функции. А какой код возвращали функции ? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MiklPolikov 0 Posted July 18, 2014 · Report post выставил задержку перед вызовом функции f_mkfs() и все заработало У меня то же самое, работаю с SD картами. Задержку требует SD карта. По-моему ей нужно "подумать" перед запросом о количестве секторов, который происходит при f_mkfs Вопрос : Кто-нибудь сталкивался с тем, что FATfs не видит файловую систему на только что купленных SD картах ? Форматирование в Windows ситуацию не меняет. После форматирования функциями самой FATfs карта работает и в FATfs и в Windows. После нового форматирования в Windows продолжает работать и в FATfs . Почему так происходит, в самых общих чертах понятно. Но хочется , что бы FATfs работала со всеми картами изначально. Может надо что-то в настройках FATfs изменить ? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kolobok0 0 Posted July 18, 2014 · Report post ...Почему так происходит, в самых общих чертах понятно.... OFF/2: Думаю надо начинать обсуждение с того чего понятно :) Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MiklPolikov 0 Posted July 18, 2014 · Report post OFF/2: Думаю надо начинать обсуждение с того чего понятно :) Думаю, это связано с положением FAT относительно начала адресного пространства. Помню, там есть разные варианты размещения, видимо какой-то из них FATfs не поддерживает. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...