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

Зависает в f_mkfs (STM32)

Здравствуйте.
МК зависает при вызове функции:
f_mkfs("", FM_FAT32, 0, work, sizeof work);

Зависает в функции HAL_SD_WriteBlocks, в этом цикле:
while(!__HAL_SD_GET_FLAG(hsd, SDIO_FLAG_TXUNDERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DATAEND | SDIO_FLAG_STBITERR))

Монтирование, создание файлов и запись в них выполняется нормально, но с форматированием проблема.

Пробовал всевозможные файловые системы, в половине случае так же зависает, в половине возвращает: FR_INVALID_PARAMETER

Пробовал разные MicroSD, результат везде один.

 

Где то год назад я уже пробовал работать с MicroSD, и тогда никаких проблем у меня не возникало.
Возможно причина связана с новым обновлением CubeMX или с тем, что в CubeMX в настройках FATFS появился пункт BSP (Detect_SDIO)

 

Возможно кто то сталкивался с подобным и подскажет решение

 

МК: STM32F4

Проект генерирую в кубе

Связка FATFS+SDIO
 

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


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

15 hours ago, Nosaer said:

Зависает в функции HAL_SD_WriteBlocks, в этом цикле:

Неужели этот куб так хорош, что его стали использовать везде, где только можно?! Зависает, без таймаута, без выдачи каких-либо отладочных сообщений... Может быть это всё можно включить в нём, и он расскажет о проблемах сам?

32 minutes ago, golf2109 said:

первое, что я бы сделал-попробовал другие типы карточек

А второе - отказаться от куба, и написать дрова и стек карточки самостоятельно, если, конечно проект не одноразовый.

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


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

7 hours ago, golf2109 said:

первое, что я бы сделал-попробовал другие типы карточек

Другие MicroSD я пробовал, проблема та же. Через SDIO на прямую я спокойно работаю с картой, могу считывать все ее параметры, записывать, считывать. Тоже самое в принципе и с FATFS, кроме функции форматирования.

Карт SD, под рукой к сожалению пока нет.

 

haker_fox, моего уровня знаний пока не достаточно чтобы прицепить FATFS самостоятельно.

Если бы у меня сейчас получилось инициализировать все с помощью куба, чтобы все конкретно заработало. Я бы со временем с этими настройками все переписал бы под себя. Как в принципе я поступаю со всей другой периферией: освоил на HAL, посмотрел как все инициализируется, посмотрел как все работает, перехожу на CMSIS.

Во всяком случае для меня, это на много упрощает освоение STM.

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


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

4 hours ago, Nosaer said:

haker_fox, моего уровня знаний пока не достаточно чтобы прицепить FATFS самостоятельно.

Как раз FatFS подключить очень просто. Нужно всего-лишь поправить с пяток функций в diskio.c, да и на сайте у Чана всё расписано. Другое дело - драйвер SDIO. Но здесь лучше начать разбираться постепенно, приглядывая в спецификацию физического уровня с sdcard.org.

4 hours ago, Nosaer said:

Я бы со временем с этими настройками все переписал

Ну чтож, я вас понимаю. Сам так до недавнего времени поступал) Хотя вот недавно осваивал периферию в одном МК для которого нигде примеров драйвера не было, только огрызки в инете. Пришлось конкретно сесть за мануал на МК, и разбираться. И делать, по-сути, с нуля.

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


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

On 1/3/2019 at 2:51 PM, Nosaer said:

МК зависает при вызове функции:
f_mkfs("", FM_FAT32, 0, work, sizeof work); 

Во время вызова f_mkfs, заходит в disk_initialize?
Какой размер имеет массив work?

 

On 1/3/2019 at 2:51 PM, Nosaer said:

в половине случае так же зависает

Нужно спускаться ниже и смотреть на каком условии висит...

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


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

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

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

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

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

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

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

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

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

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