Easyelectronics.ru

Электроника для всех
Текущее время: 21 июл 2018, 05:01

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: [Решено]FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 06 ноя 2017, 21:24 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Привет всем.

Вот решил обновиться с FatFs R012b на FatFs R0.13. Эта версия, как и ряд предыдущих, лишена кодировки Win1251.
Раньше я решал эту проблему подсовыванием нужных макросов/таблиц из каких-то старых версий FatFS, где Win1251 ещё была.
Но оказалось, что в R0.13 (может одной-двух предыдущих - не знаю) сильно изменилась система перекодировок и просто подсунуть нужные таблицы не получается.

Встроенные русские/кириллические кодировки 855 и 866 не подходят - при чтении каталога выдаётся некая каша из русских букв.

Кто-нибудь уже разбирался с этим? Есть ли нормальный способ приделать 1251 или нужно костылить/забить на все японские обновки?

Заранее благодарен.


Последний раз редактировалось hd44780 12 ноя 2017, 15:03, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 13:08 
Заглядывает иногда

Зарегистрирован: 22 янв 2014, 11:26
Сообщения: 159
Использую R0.11 там 1251 без танцев с бубном по умолчанию. Нужна ли 13я? В чем ее новшества и фишки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 14:22 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
ведущий_специалист писал(а):
Использую R0.11 там 1251 без танцев с бубном по умолчанию. Нужна ли 13я? В чем ее новшества и фишки?

Ну я тоже пока сижу на R0.12b - вроде бы последняя, куда можно легко впихнуть старые 1251 таблицы.
13 решил попробовать пока что просто так - японец же фиксит какие-то баги ... Правда и приносит новые :))))

PS.
Спросил на форуме японца - http://elm-chan.org/fsw/ff/bd/?show=3059
Пока только 2 ответа, по сути не по существу вопроса. Первый в духе - впиливайте руками старые таблицы, второй гласит - "Fat не поддерживает 1251 кодировку. Используйте 866"... Просто нет слов.... No comment, как говорят буржуи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 15:38 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
Все правильно говорят, не поддерживает. Короткие имена идут в кодировке 866, LFN идет в кодировке UNICODE

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 19:22 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Oxford писал(а):
Все правильно говорят, не поддерживает. Короткие имена идут в кодировке 866, LFN идет в кодировке UNICODE


Хорошо, пусть так. Не буду спорить, я в тонкости кодировок не вникал.
Подскажите тогда корректные настройки для этой FatFs. Поставил:
Код:
#define FF_CODE_PAGE   866
#define FF_USE_LFN      1
#define FF_LFN_UNICODE   2

На флешке 3 каталога с русскими именами: Кремль, РУС, Русское имя. Все 3 - полный бред.
#define _LFN_UNICODE 0 -- тоже бред

На FatFs R0.12b c добавленными руками таблицами 1251 и настройками
Код:
#define _CODE_PAGE   1251
#define   _USE_LFN   1
#define   _LFN_UNICODE   0

работает идеально. Проект один тот же, флэшка одна и та же, меняю только FatFS.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 19:36 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
#define FF_CODE_PAGE 866
#define FF_USE_LFN 1
#define FF_LFN_UNICODE 0

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 20:31 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Oxford писал(а):
#define FF_CODE_PAGE 866
#define FF_USE_LFN 1
#define FF_LFN_UNICODE 0

Не помогло :(
может ещё от чего зависит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 20:37 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
а с FF_LFN_UNICODE 1?

Там еще настройки LFN у него разные
0 Disable LFN. Path name in only 8.3 format can be used.
1 Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
2 Enable LFN with dynamic working buffer on the STACK.
3 Enable LFN with dynamic working buffer on the HEAP.

http://elm-chan.org/fsw/ff/doc/config.html#code_page

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 21:10 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Oxford писал(а):
а с FF_LFN_UNICODE 1?


FF_LFN_UNICODE 1 - при этом вообще диски перестают монтироваться. f_mount выдаёт FR_NO_FILESYSTEM. Хз как оно там у него сделано.

Oxford писал(а):
Там еще настройки LFN у него разные
0 Disable LFN. Path name in only 8.3 format can be used.
1 Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
2 Enable LFN with dynamic working buffer on the STACK.
3 Enable LFN with dynamic working buffer on the HEAP.


Оно у него давно было. Я уже очень давно ставлю 1, пока мне этого достаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 21:41 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
ХЗ че он там мутит. А вы с SDIO используете через DMA? В моей фат вообще никаких таблиц нет и все пашет как конь.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 22:01 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Oxford писал(а):
ХЗ че он там мутит. А вы с SDIO используете через DMA? В моей фат вообще никаких таблиц нет и все пашет как конь.


Да, DMA. Но кроме SDIO у меня ещё и 2 USB флэшки висит - везде всё одинаково.
А скиньте плиз Ваш FatFS без diskio.c и fattime.c, я сравню.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 22:06 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
не получиться, у меня взаимосвязи другие и логика работы другая. в лоб заменить не выйдет.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 22:37 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Ну и в пень её тогда эту R0.13 :))))))
Меня пока и 0.12b устраивает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 22:43 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
ну работает не трогай )))

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 23:19 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
угу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 08 ноя 2017, 23:37 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
какую скорость записи и чтения выжать удалось?

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 08:54 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2657
Что у меня удавалось:
STM32F439, SDIO(4бит)+DMA, FatFs_R0.13, запись файла из SDRAM
SD 2Гб, FAT32, кластер 64к
Цитата:
17/10/13 16:03:52->[EXT MEM: SDCARD]->Write end, speed: 3666 KB/s ( 33 554 432 (32.00 MB) in 8937 ms)
17/10/13 16:03:52->[EXT MEM: SDCARD]->Read end, speed: 7814 KB/s ( 33 554 432 (32.00 MB) in 4193 ms)

SDHC 8Гб 4 класс, FAT32, кластер 64к
Цитата:
17/10/13 16:01:15->[EXT MEM: SDCARD]->Write end, speed: 3700 KB/s ( 33 554 432 (32.00 MB) in 8856 ms)
17/10/13 16:01:15->[EXT MEM: SDCARD]->Read end, speed: 7824 KB/s ( 33 554 432 (32.00 MB) in 4188 ms)

SDXC на 64 Гб, 10 класс, exFAT, кластер 64к
Цитата:
17/10/13 16:11:20->[EXT MEM: SDCARD]->Free: 63 830 753 280 (59.44 GB)
17/10/13 16:11:20->[EXT MEM: SDCARD]->Total: 63 831 015 424 (59.44 GB)
17/10/13 16:11:27->[EXT MEM: SDCARD]->Write end, speed: 7063 KB/s ( 33 554 432 (32.00 MB) in 4639 ms)
17/10/13 16:11:27->[EXT MEM: SDCARD]->Read end, speed: 7813 KB/s ( 33 554 432 (32.00 MB) in 4194 ms)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 12:28 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Я не знаю, скорость никогда не измерял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 16:06 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Я наконец понял, что сделала эта японская сволочь в R0.13.
Имена на диске действительно хранятся в DOS(она же 866) кодировке (SFN) и Unicode (LFN). Но раньше он сам перекодировал всё это в 1251, а сейчас он это нафиг выкинул и выдаёт все имена файлов (и длинные и короткие) в 866 кодировке.
Т.к. в гуях шрифт у меня в 1251, поэтому я видел белиберду из русских букв.
Надо прикрутить к нему перекодировщик 866<->1251 и, по идее, должно всё взлететь.

Революционер долбаный....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 16:27 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2657
Если всё удастся - выложите фикс, потомкам будет полезно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 16:29 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
да, как сделаю/протестю - выложу сюда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 16:31 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
Мой код для 866 Попробуйте. А у него на сайте в таблице и нет 1251, у него кириллица указана в кодировке 866
Он UNICODE вытаскивает в 866 кодировку.
Код:
//Конвертирование DOS866 в W1251
char DosToChar(unsigned char Byte)
{
   char Code;
   Code = Byte;
   if (Byte >= 128 && Byte <= 175)
   Code = Byte + 64;
   if (Byte >= 224 && Byte <= 239)
   Code = Byte + 64;
   return Code;
}


Вложение:
Screenshot_95.png
Screenshot_95.png [ 32.81 Кб | Просмотров: 1320 ]

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 09 ноя 2017, 17:42 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Oxford писал(а):
Мой код для 866 Попробуйте. А у него на сайте в таблице и нет 1251, у него кириллица указана в кодировке 866
Он UNICODE вытаскивает в 866 кодировку.


Да, он всё теперь в 866 гонит. А дальше пусть каждый сам для себя крутит, как хочет.
Код проверю, спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 12 ноя 2017, 15:03 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1702
Откуда: Донецк, ДНР
Как и обещал - отписываюсь.
Общий итог - русские буквы только в кодировке 866/DOS. Если проект требует чего-другого, например, 1251, необходима перекодировка.
Приложил пару функций по перекодировке Win1251<->866(DOS). У меня всё пашет на ура.
В таблицах также есть украинские буквы - но см. PS!!!

Для себя тему считаю закрытой.

Всем спасибо.

PS.
По ходу нашёл одну забавную багу в FatFs F0.13a - если в имени файла есть хотя бы одна из 3-х украинских букв (писать их здесь я не буду, те кому они нужны, их и так знают) - хотя бы одна, то функция f_readdir возвращает только SFN !!! Длинное имя не возвращается вообще.Тем не менее файл/каталог полностью читабелен с коротким именем (SFN).
Подробности не изучал, мне это неактуально и малоинтересно. Хотя мне кажется, что причина в том, что у него нет этих букв в Unicode таблицах.
Если кто раскопает - просьба отписаться.


Вложения:
encoding.c [2.31 Кб]
Скачиваний: 174


Последний раз редактировалось hd44780 12 ноя 2017, 23:04, всего редактировалось 3 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Решено]FatFs R0.13 и кодировка Win1251
СообщениеДобавлено: 12 ноя 2017, 15:08 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3426
Откуда: Кемеровская область, Киселевск
Чтобы массив не юзать я тебе дал свой код.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB