Перейти к содержанию
    

В библиотеке от ATMEL для ARM вложена библиотека FatFs версии R0.06, решил обновить до R0.08b.

 

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

 

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

Пробовал в ffconf шаманить-ничего не изменилось в расширении файла опять верхний регистр.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По-моему кодировку (_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) нужно добавить эти функции.

 

Где их брать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня в версии 7e без LFN маленькие буквы, хотя никаких спец настроек не делал. А вот при переходе на 8 тоже стали большие, но я забил. Все равно откатился на 7е .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я закоментил эти функции за ненадобностью, и все стало нормально.

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

 

У меня в версии 7e без LFN маленькие буквы, хотя никаких спец настроек не делал. А вот при переходе на 8 тоже стали большие, но я забил. Все равно откатился на 7е .

Видимо, положено при формате 8.3 иметь верхний регистр, а не нижний, вот Чен и подправил исходники.

В принципе, мне пофигу, всё равно без LFN файловую систему не пользую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...