Полная версия этой страницы:
STM32F407VG+NAND+FSFAT
mifodij
Aug 15 2016, 10:15
Доброе время суток.
Суть проблемы такова есть отладочная плата STM32F4 Discovery и к ней припаяна NAND память MT29F64G08.
Уже есть написаные драйвера для работы со страницами самой памяти. но не могу настроить файловую систему FAT
с помощью бибилиотеки FSFAT. Сама памясть не может нормально отформатироватся..
Подскажите какой алгоритм?
что помио нижних драйверов надо определять?
demiurg_spb
Aug 15 2016, 11:10
Вы об этой FS спрашиваете?
http://elm-chan.org/fsw/ff/00index_e.htmlОтвет очевиден: надо дебажить...
У Вас консоль отладочная поднята?
mifodij
Aug 15 2016, 11:26
Сама консоль не поднята отлажываю с помощью пошагово прохода по проекту. Использую библиотеку которая идет вместе с средой KEIL. Сам проект прилагаю.
Уровень драйверов работы с памятью реализовал. Страницы памяти читаю и пишу.
demiurg_spb
Aug 15 2016, 11:35
Я не буду изучать ваши исходники - нет никакого желания.
Учитесь самостоятельно находить свои ошибки - без этого программистом стать невозможно.
Вы же можете выполнять программу по шагам, так найдите место, где случается бяка и разберитесь с ней.
Тут чудес никаких нет и быть не может.
mifodij
Aug 15 2016, 11:54
Вся проблема в том что не могу понять где и что не проинициализировал. Читая документацию по кейлу настроил параметры NAND памяти и проверил нижний уровень драйверов.
Полсе этого начал настраивать уровень translation layout, как описано в документации на сайте кейла и подключил необходимую библиотеку. Сейчас проблема в то м что при инициализации самой памяти выдается ошибка про отсуствие MBR или о том что устройство не отфоратировано. выдаю команду форматировать ( fformat("N0:") ) оно проходит но после снова после инициализации відает ошибку 2. Вопрос в следующем где надо в самой библиотеки я мог не дообявить? или я неправильно адресую страницы и блоки. Во всехз примерах 4 байта адрес.. а в документации к памяти размер адресации 5 байт (согласно стандарту ONFI).
А пошагово мало что можно увидеть так как большая часть функций в в либе..
я могу видеть только те функции которые находять на уровне драйверов (так как писал их сам). и проверял что то что я пишу то и считывается.
demiurg_spb
Aug 15 2016, 12:30
Либы, собранные с отладочной информацией, тоже можно дебажить.
mifodij
Aug 15 2016, 12:38
Проблема в том что либу собирал не я, это стандартная либа в Кейле. Если чесно то не представляю как ее дебажить. разве что вызов отдельных функций или дезассемблированием.
demiurg_spb
Aug 15 2016, 13:33
Обычно поставляется два комплекта либ стрипанные и с отладочной информацией.
И в зависимости от цели цепляются к проекту те, или иные.
mifodij
Aug 15 2016, 13:50
В моем случае есть одна либа в которой реализованы нужные функции. а залезть внутрь либы я не могу.
mantech
Aug 16 2016, 06:38
Цитата(mifodij @ Aug 15 2016, 16:50)

В моем случае есть одна либа в которой реализованы нужные функции. а залезть внутрь либы я не могу.
Ну а что вы тут тогда ждете? Ищете телепата? Тут напрашивается только один ответ - искать исходники с открытым кодом и отлаживать пошагово. Чем вам так уперся этот "черный ящик", в который "ни залезть, ни вылезть"?
hd44780
Aug 16 2016, 14:53
А Вы саму память проверяли? Типа записали куда-то 512 байт случайного мусора, считали, сравнили.
И к чему относится либа? Это работа с Вашим чипом памяти?
Сергей Борщ
Aug 16 2016, 15:46
QUOTE (mifodij @ Aug 15 2016, 16:50)

В моем случае есть одна либа в которой реализованы нужные функции. а залезть внутрь либы я не могу.
Тогда, наверное, стоит обратиться в техподдержку Кейла. Вы заплатили им денег за компилятор, пусть они их отрабатывают.
Непомнящий Евгений
Aug 17 2016, 05:39
Цитата(Сергей Борщ @ Aug 16 2016, 18:46)

Тогда, наверное, стоит обратиться в техподдержку Кейла. Вы заплатили им денег за компилятор, пусть они их отрабатывают.
хотя как знать конечно
Sanya_kv
Aug 22 2016, 06:28
FatFS не подходит для использования на "прямую" с типом памяти NAND. Причина в том, что блоки памяти довольно часто выходят из строя оп причине неравномерности использования. Бывает что с завода память приходит уже с битыми блоками. Для нормальной работы необходимо использовать дополнительный драйвер или контроллер, который равномерно распределяет "нагрузку" на все блоки. Насколько я помню, в Кейловской FlashFS этот драйвер присутствует.
Автор вопроса пока не сообщил какую библиотеку он пытается использовать. По крайне мере для меня это не очевидно.
mantech
Aug 22 2016, 10:53
Цитата(Sanya_kv @ Aug 22 2016, 09:28)

FatFS не подходит для использования на "прямую" с типом памяти NAND.
С тем типом нанда, который у тс - да, не подходит. Если нет желания возится с выравниванием износа, можно поставить SLC-нанд.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.