Jump to content

    
Sign in to follow this  
*rust*

FatFs

Recommended Posts

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

 

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

 

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

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

 

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

 

 

Share this post


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

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

 

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

Share this post


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

 

Где их брать?

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Я закоментил эти функции за ненадобностью, и все стало нормально.

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

 

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this