Nosaer 0 3 января, 2019 Опубликовано 3 января, 2019 · Жалоба Здравствуйте. МК зависает при вызове функции: 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
golf2109 0 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба первое, что я бы сделал-попробовал другие типы карточек Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 15 hours ago, Nosaer said: Зависает в функции HAL_SD_WriteBlocks, в этом цикле: Неужели этот куб так хорош, что его стали использовать везде, где только можно?! Зависает, без таймаута, без выдачи каких-либо отладочных сообщений... Может быть это всё можно включить в нём, и он расскажет о проблемах сам? 32 minutes ago, golf2109 said: первое, что я бы сделал-попробовал другие типы карточек А второе - отказаться от куба, и написать дрова и стек карточки самостоятельно, если, конечно проект не одноразовый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nosaer 0 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 7 hours ago, golf2109 said: первое, что я бы сделал-попробовал другие типы карточек Другие MicroSD я пробовал, проблема та же. Через SDIO на прямую я спокойно работаю с картой, могу считывать все ее параметры, записывать, считывать. Тоже самое в принципе и с FATFS, кроме функции форматирования. Карт SD, под рукой к сожалению пока нет. haker_fox, моего уровня знаний пока не достаточно чтобы прицепить FATFS самостоятельно. Если бы у меня сейчас получилось инициализировать все с помощью куба, чтобы все конкретно заработало. Я бы со временем с этими настройками все переписал бы под себя. Как в принципе я поступаю со всей другой периферией: освоил на HAL, посмотрел как все инициализируется, посмотрел как все работает, перехожу на CMSIS. Во всяком случае для меня, это на много упрощает освоение STM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 4 hours ago, Nosaer said: haker_fox, моего уровня знаний пока не достаточно чтобы прицепить FATFS самостоятельно. Как раз FatFS подключить очень просто. Нужно всего-лишь поправить с пяток функций в diskio.c, да и на сайте у Чана всё расписано. Другое дело - драйвер SDIO. Но здесь лучше начать разбираться постепенно, приглядывая в спецификацию физического уровня с sdcard.org. 4 hours ago, Nosaer said: Я бы со временем с этими настройками все переписал Ну чтож, я вас понимаю. Сам так до недавнего времени поступал) Хотя вот недавно осваивал периферию в одном МК для которого нигде примеров драйвера не было, только огрызки в инете. Пришлось конкретно сесть за мануал на МК, и разбираться. И делать, по-сути, с нуля. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Integro 0 8 января, 2019 Опубликовано 8 января, 2019 · Жалоба 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: в половине случае так же зависает Нужно спускаться ниже и смотреть на каком условии висит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться