Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FatFs
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
*rust*
В библиотеке от ATMEL для ARM вложена библиотека FatFs версии R0.06, решил обновить до R0.08b.

Все прошло успешно на первый взгляд, но есть одно неудобство.

В старой версии если я создавал ARMом файл на флешке 1.txt, то файл с таким именем записывался, после обновления регист букв поменялся на верхний 1.TXT, что очень не привычно и не удобно.
Пробовал в ffconf шаманить-ничего не изменилось в расширении файла опять верхний регистр.

Кто знаком с этим, подскажите как сделать нижний регистр?

jorikdima
По-моему кодировку (_CODE_PAGE) нужно поставить не ASCII. В общем вокруг этого попробуйте покрутиться.
sonycman
Цитата(*rust* @ Jun 26 2011, 14:50) *
В старой версии если я создавал ARMом файл на флешке 1.txt, то файл с таким именем записывался, после обновления регист букв поменялся на верхний 1.TXT, что очень не привычно и не удобно.

Если LFN отключено, то есть формат имени файла 8.3 - то имена будут создаваться заглавными буквами.

Попробуйте включить LFN.
*rust*
Цитата
По-моему кодировку (_CODE_PAGE) нужно поставить не ASCII. В общем вокруг этого попробуйте покрутиться.


Проовал разные варианты, не помогло.

Цитата
Попробуйте включить LFN.


Сделал следующее:
Код
#define _CODE_PAGE 866 // Russian (OEM)

#define    _USE_LFN    1        /* 0 to 3 */
/* The _USE_LFN option switches the LFN support.
/
/   0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/   1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/   2: Enable LFN with dynamic working buffer on the STACK.
/   3: Enable LFN with dynamic working buffer on the HEAP.
/
/  The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/  Unicode handling functions ff_convert() and ff_wtoupper() must be added
/  to the project. When enable to use heap, memory control functions
/  ff_memalloc() and ff_memfree() must be added to the project. */

#define    _LFN_UNICODE    1    /* 0:ANSI/OEM or 1:Unicode */
/* To switch the character code set on FatFs API to Unicode,
/  enable LFN feature and set _LFN_UNICODE to 1. */


Заменил тип TCHAR на char.

Теперь, как написано при включении _USE_LFN (Unicode handling functions ff_convert() and ff_wtoupper() must be added) нужно добавить эти функции.

Где их брать?
*rust*
Я закоментил эти функции за ненадобностью, и все стало нормально.
jorikdima
У меня в версии 7e без LFN маленькие буквы, хотя никаких спец настроек не делал. А вот при переходе на 8 тоже стали большие, но я забил. Все равно откатился на 7е .
sonycman
Цитата(*rust* @ Jun 26 2011, 21:27) *
Я закоментил эти функции за ненадобностью, и все стало нормально.

Лучше снимите галку с Юникода, зачем Вам париться с ним, когда ОЕМ прекрасно подходит sm.gif

Цитата(jorikdima @ Jun 26 2011, 21:37) *
У меня в версии 7e без LFN маленькие буквы, хотя никаких спец настроек не делал. А вот при переходе на 8 тоже стали большие, но я забил. Все равно откатился на 7е .

Видимо, положено при формате 8.3 иметь верхний регистр, а не нижний, вот Чен и подправил исходники.
В принципе, мне пофигу, всё равно без LFN файловую систему не пользую.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.