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

 
 
> FatFS пофиксена
megajohn
сообщение Oct 22 2013, 14:02
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Added selection of character encoding on the file. (_STRF_ENCODE)
Added f_closedir().
Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO)
Added forced mount feature with changes of f_mount().
Improved behavior of volume auto detection.
Improved write throughput of f_puts() and f_printf().
Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().
Fixed f_write() can be truncated when the file size is close to 4GB.
Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect error code.

http://elm-chan.org/fsw/ff/ff10.zip


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ndf
сообщение Oct 30 2013, 09:32
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 22-08-07
Пользователь №: 29 977



Также воспользуюсь случаем... привожу простую функцию которая укладывает проц намертво:

if ((res = f_opendir(&dirs, path)) == FR_OK){
print("Open dir ok...\n");
while (((res = f_readdir(&dirs, &finfo)) == FR_OK) && finfo.fname[0]){
print("Read dir entry...\n");
//... любой код далее приводит к перезагрузке
}
}
Взято из примеров Chana, FatFs R0.10 ©ChaN, 2013 Revision ID 80960, платформа BlackFin.
Получаем:
Open dir ok...
Read dir entry...
Exception handler:: Hardware error
Убил пол дня на поиски места падения, но терпения не хватило.. пришлось вернуться к FatFs R0.07c где все работает без проблем sad.gif
ps: Проблема решилась установкой параметра:
#define _USE_LFN 1


Сообщение отредактировал Ndf - Oct 30 2013, 18:36
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Jan 10 2014, 22:32
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Надеюсь, перед этим вызовом
Цитата(Ndf @ Oct 30 2013, 14:32) *
while (((res = f_readdir(&dirs, &finfo)) == FR_OK) && finfo.fname[0]){

Вы делали finfo.lfsize = 0; finfo.lfname = NULL; ?
Это такая засадная засада sm.gif


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jun 6 2014, 10:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Возник такой вопрос :

Использую библиотеку FatFS совместно с операционкой freertos . В устройстве две SD карты, и разумеется возникает желание создать два независимых потока записи. Но вот беда : в fatFS перед работой с файлом требуется выбрать диск функией f_chdrive, эта функция меняет глобальную переменную CurrVol . Получается, нельзя создать два независимых потока, а нужно ждать пока в первом потоке закончится работа с диском, переключится на второй, изменить выбор диска вызвав f_chdrive , и т.д. Это глупость fatFS , или я чего-то не понимаю ?

И зачем поле
BYTE drv; /* Physical drive number */
находится в структуре FATFS которая в свою очередь находится в структуре FIL ? Т.е. если в объекте файла уже есть номер диска, то зачем нужна функция f_chdrive, которая сохраняет номер диска в какой-то глобальной переменной ? Может быть выбирать диск при помощи f_chdrive нужно только при создании файла , а дальше при работе с файлом номер диска берётся из объекта файла, и с многопотоковостью проблем не возникает ? Ну а почему тогда не сделана просто передача номера диска как параметра в функцию f_open ?

Заранее спасибо за разъяснения !


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jun 6 2014, 18:10
Сообщение #5


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(MiklPolikov @ Jun 6 2014, 18:35) *
Возник такой вопрос :


не знаю насколько в тему...но..
вроде как есть понятие текущий путь для каждого тома свой.
и собственно путь объекта файловой системы(если задаётся явно). скорее всего отсюда ноги растут.


И встречный вопрос:
Вы говорите что юзаете больше чем одну флэш. А что за железку запускаете? Интересует камень и как оперируете CS-ами? На аппаратном уровне
или софтверном? Есть ли поддержка со стороны железа, и что является фазой переключения(если переключаете)?


Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 15:25
Рейтинг@Mail.ru


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