реклама на сайте
подробности

 
 
> Вопрос по FatFs от мистера ChaN'а
kanzler
сообщение Nov 22 2007, 19:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728



Прикрутил FatFs на ATmega128. В примерах данных от мистера ChaN'а не очень понятно вот что. В программе описываю структуру типа FATFS, но ни как не могу найти где он заносит данные в эту структуру. Прошу уважаемые коллеги, разобраться с этим вопросом.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Nov 22 2007, 19:32
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(kanzler @ Nov 22 2007, 21:11) *
В программе описываю структуру типа FATFS, но ни как не могу найти где он заносит данные в эту структуру.
Вы должны передать ее адрес через f_mount в начале работы. Потом он с ней будет работать сам внутри.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
kanzler
сообщение Nov 23 2007, 02:31
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728



Цитата(Сергей Борщ @ Nov 23 2007, 00:32) *
Вы должны передать ее адрес через f_mount в начале работы. Потом он с ней будет работать сам внутри.

Так и делаю, но после f_mount структура пустая. Значить я что то делаю не так. Что? Вопрос - в настройках используемой памяти в IAR какие значения нужно ставить? У меня Heap size 0x400, CSTACK = 256, RSTACK = 128
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 23 2007, 09:59
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(kanzler @ Nov 23 2007, 04:31) *
Так и делаю, но после f_mount структура пустая. Значить я что то делаю не так. Что?
Как что? Не прочитали документацию. Хотя бы на f_mount:
Цитата
This function only initializes the work area and registers its address to the internal table, any access to the disk I/O layer does not occure. The actual mounting process is performed depends on requirement in any other file funcitons.
Можно было еще заглянуть в исходники, и увидеть, что f_mount только сохраняет адрес этой структуры во внутренней переменной. А заполнение произойдет потом, когда попытаетесь призвести какое-нибудь действие с файлом/директорией.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
kanzler
сообщение Nov 23 2007, 16:49
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728



Цитата(Сергей Борщ @ Nov 23 2007, 14:59) *
Как что? Не прочитали документацию. А заполнение произойдет потом, когда попытаетесь призвести какое-нибудь действие с файлом/директорией.

Читал, но мой англицкий оставляет желать лучшего.
Так и пытаюсь произвести чтение директории с помощью f_readdir, возвращает - FR_NO_FILESYSTEM, хотя флешка перед тем была отформатированна FAT16 и записан файл.

Цитата(prottoss @ Nov 23 2007, 18:30) *
А Вы описали функции disk read/write sector/ioctl? Возможно проблема в этом?

В этом нет проблемы драйвер был прикручен и он работает без сбоев.

Цитата(GDI @ Nov 23 2007, 12:20) *
Cделайте map-файл и посмотрите какие размеры стеков вам требуются

Честно говоря я не сильно понимаю как можно узнать в map-файле что со стеком всё впорядке. Подскажите пожайлуста.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 23 2007, 20:52
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(kanzler @ Nov 23 2007, 18:49) *
В этом нет проблемы драйвер был прикручен и он работает без сбоев.

999 против 1, что disk_read() не смотря вышеприведенное утверждение не работает. В чем с легкостью можете убедится посмотрев что Вы получили вместо 0 сектора в fs.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
kanzler
сообщение Nov 24 2007, 06:27
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728



Цитата(zltigo @ Nov 24 2007, 01:52) *
999 против 1, что disk_read() не смотря вышеприведенное утверждение не работает. В чем с легкостью можете убедится посмотрев что Вы получили вместо 0 сектора в fs.

Ставка принята. Посмотрев код я не нашёл в функциях f_mount, f_opendir, f_readdir ссылок на да функцию disk_read(). Может быть я что то пропустил. Или может быть после того как произвели регистрацию fs с помощью f_mount нужно вызвать f_getfree()? Хотя и в ней нет ссылка на disk_read().

Вобщем ни одна функция f_opendir, f_readdir, f_getfree не возвращает FR_OK. Эсли это связанно с тем что функция disk_read() не работает, то я её проверю, только объясните по шагам как работать с FatFs, пожайлуста.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 24 2007, 07:51
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(kanzler @ Nov 24 2007, 08:27) *
Посмотрев код я не нашёл в функциях...

Расстроили очень sad.gif Читаем:
Цитата
Так и пытаюсь произвести чтение директории с помощью f_readdir, возвращает - FR_NO_FILESYSTEM,

Для начала f_readdir() в принципе не может возвращать FR_NO_FILESYSTEM, ибо работает с готовой заполненной структурой DIR. Сию ошибку возвращает f_opendir() которая и пытается прочитать с диска и заполнить вышеупомянутую структуру. В свою очередь FR_NO_FILESYSTEM возвращает только фунуция auto_mount(), которая в свою очередь вызывает функцию с совершенно ожидаемым названием check_fs(), которая в свою очередь ну совсем ожидаемо
(а что ей еще остается делать?) вызывает disk_read() для разборок с содержимым диска.


P.S.
Кстати, auto_mount() очень сомнительное "удобство" введенное в V0.04, ибо узнается о проблемах с диском только при обращении к нему. Например, пришел, сменил носитель, ушел и через некоторое время узнал, что не сработало. Одно из моих изменений в собственно ff (немногих, кстати smile.gif ) касается замены auto_mount() на check_mount(), а собствено монтирование (полное, а не то, огрызок f_mount() ) осуществляется по детектированию вставления SD/MMC, ну и ручками при желании.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kanzler   Вопрос по FatFs от мистера ChaN'а   Nov 22 2007, 19:11
||||- - kanzler   Цитата(zltigo @ Nov 24 2007, 12:51) Расст...   Nov 24 2007, 08:15
||||- - Сергей Борщ   Цитата(kanzler @ Nov 24 2007, 10:15) Если...   Nov 24 2007, 08:22
|||||- - kanzler   Цитата(Сергей Борщ @ Nov 24 2007, 13:22) ...   Nov 24 2007, 08:29
||||- - zltigo   Цитата(kanzler @ Nov 24 2007, 10:15) Как ...   Nov 24 2007, 08:29
||||- - kanzler   Цитата(zltigo @ Nov 24 2007, 13:29) Вы эт...   Nov 24 2007, 08:35
||||- - zltigo   Цитата(kanzler @ Nov 24 2007, 10:35) f_mo...   Nov 24 2007, 08:48
|||||- - kanzler   Цитата(zltigo @ Nov 24 2007, 13:48) Это з...   Nov 24 2007, 09:21
|||||- - zltigo   Цитата(kanzler @ Nov 24 2007, 11:21) Дела...   Nov 24 2007, 09:37
||||- - Сергей Борщ   Цитата(kanzler @ Nov 24 2007, 10:35) Со с...   Nov 24 2007, 09:36
|||- - Hasky   [quote name='kanzler' date='Nov 23 200...   Jun 30 2009, 07:22
||- - kostik2   Цитата(Сергей Борщ @ Nov 23 2007, 12:59) ...   Apr 1 2009, 17:02
||- - Сергей Борщ   Цитата(kostik2 @ Apr 1 2009, 20:02) Может...   Apr 1 2009, 19:45
||- - _Pasha   Цитата(kostik2 @ Apr 1 2009, 20:02) пока ...   Apr 2 2009, 08:02
|- - prottoss   Цитата(kanzler @ Nov 23 2007, 09:31) Так ...   Nov 23 2007, 13:30
- - GDI   Cделайте map-файл и посмотрите какие размеры стек...   Nov 23 2007, 07:20
- - kanzler   Огромное всем спасибо!   Nov 24 2007, 09:58
- - Непомнящий Евгений   У меня тоже вопрос по FatFS. Рассматриваю возможно...   Nov 24 2007, 13:01
|- - zltigo   Цитата(Непомнящий Евгений @ Nov 24 2007, 15...   Nov 24 2007, 13:14
|- - Сергей Борщ   Цитата(Непомнящий Евгений @ Nov 24 2007, 15...   Nov 24 2007, 13:34
- - Непомнящий Евгений   Цитата(Сергей Борщ @ Nov 24 2007, 16:34) ...   Nov 24 2007, 14:00
|- - zltigo   Цитата(Непомнящий Евгений @ Nov 24 2007, 16...   Nov 24 2007, 14:35
- - Непомнящий Евгений   to zltigo - по моему, мы говорим о разных моделях....   Nov 24 2007, 14:39
|- - zltigo   Цитата(Непомнящий Евгений @ Nov 24 2007, 16...   Nov 24 2007, 14:52
|- - Непомнящий Евгений   Цитата(zltigo @ Nov 24 2007, 17:52) На мо...   Nov 24 2007, 15:00
|- - zltigo   Цитата(Непомнящий Евгений @ Nov 24 2007, 17...   Nov 24 2007, 15:12
- - alux   В версии ff006 неправильно работает fprintf: Кодvo...   Mar 20 2009, 09:46
- - Andy Mozzhevilov   смотрели здесь? http://elm-chan.org/fsw/ff/patches...   Mar 20 2009, 16:20
|- - artemm   Скажите, если я пишу отак: ЦитатаFATFS fs; FIL fds...   Mar 31 2009, 12:11
|- - Andy Mozzhevilov   Цитата(artemm @ Mar 31 2009, 17:11) файло...   Mar 31 2009, 14:25
- - alux   Вопрос снимается. Проблема была связана с нехватко...   Mar 21 2009, 06:41
- - alux   В симуляторе проверил fprintf , только убрал обращ...   Mar 23 2009, 08:29
|- - Сергей Борщ   Цитата(alux @ Mar 23 2009, 10:29) Видимо,...   Mar 23 2009, 08:42
||- - Andy Mozzhevilov   Цитата(Сергей Борщ @ Mar 23 2009, 14:42) ...   Mar 23 2009, 09:21
||- - alux   согласен. Тогда почему 6-ой аргумент не выводит? П...   Mar 23 2009, 09:27
||- - Сергей Борщ   Цитата(alux @ Mar 23 2009, 11:27) согласе...   Mar 23 2009, 11:23
|- - Genadi Zawidowski   Цитата(alux @ Mar 23 2009, 11:29) В симул...   Mar 25 2009, 08:52
|- - HARMHARM   Цитата(Genadi Zawidowski @ Mar 25 2009, 10...   Mar 25 2009, 11:10
|- - Genadi Zawidowski   Цитата(HARMHARM @ Mar 25 2009, 15:10) Нич...   Apr 1 2009, 17:49
- - Akakiy   Обновилась FatFS R0.07 ЦитатаR0.07, Apr 01, 2009 ...   Apr 4 2009, 15:28
- - piz2383   У меня вопрос новичка к вам. Если с помощью FATFs ...   Aug 16 2009, 15:42
- - VDLab   Если ее не форматировать средствами fatfs, то кака...   Aug 16 2009, 15:47
|- - Deddy85   Цитата(VDLab @ Aug 16 2009, 18:47) Если е...   Sep 21 2009, 11:23
- - piz2383   Я имею ввиду, у меня есть голая флешка, отформатир...   Aug 16 2009, 15:55
|- - AHTOXA   Цитата(piz2383 @ Aug 16 2009, 21:55) Пото...   Aug 16 2009, 17:31
|- - VDLab   Цитата(piz2383 @ Aug 16 2009, 18:55) Я им...   Aug 16 2009, 18:01
|- - Grape   Цитата(VDLab @ Aug 16 2009, 22:01) Если в...   Aug 17 2009, 13:09
- - VDLab   Ну такой емкости карточки пока еще не так распрост...   Aug 17 2009, 13:37
- - Qwertty   Бывают и другие причины выбирать FAT32 вместо FAT1...   Aug 17 2009, 14:17
- - VDLab   Ну это легко обходится. Просто не ложите файлы в к...   Aug 17 2009, 18:18
- - goodwin   f_mkfs   Sep 21 2009, 11:39
- - Арк К   Не смог пока разобраться с такой проблемой. Есть р...   Nov 19 2009, 07:17
|- - Арк К   Очень похоже на то, что Windows для коротких имён ...   Nov 19 2009, 08:32
|- - AHTOXA   Цитата(Арк К @ Nov 19 2009, 12:17) Кто, ч...   Nov 19 2009, 09:24
|- - Арк К   Цитата(AHTOXA @ Nov 19 2009, 12:24) Надо ...   Nov 19 2009, 12:22
|- - zltigo   Цитата(Арк К @ Nov 19 2009, 15:22) ZOC ка...   Nov 19 2009, 12:30
|- - Арк К   Цитата(zltigo @ Nov 19 2009, 15:30) Да ну...   Nov 19 2009, 19:11
- - ARV   Вопрос по Petit FatFs. Для отладки использую Prot...   Mar 5 2017, 20:53
- - AlanDrakes   А в железе пробовали отлаживать? Симулятор, конечн...   Mar 10 2017, 14:39
- - ARV   Делал и в железе - результат 100% тот же самый. И ...   Mar 14 2017, 18:31
- - AlanDrakes   Обработчики функций библиотеки дописывали сами? П...   Mar 17 2017, 15:24


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01562 секунд с 7
ELECTRONIX ©2004-2016