Easyelectronics.ru

Электроника для всех
Текущее время: 24 апр 2018, 15:56

Часовой пояс: 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
Сообщения: 1692
Откуда: Донецк, ДНР
Привет всем.

Вот решил обновиться с 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
Сообщения: 1692
Откуда: Донецк, ДНР
ведущий_специалист писал(а):
Использую 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
Сообщения: 3263
Откуда: Кемеровская область, Киселевск
Все правильно говорят, не поддерживает. Короткие имена идут в кодировке 866, LFN идет в кодировке UNICODE

_________________
RADIOWOLF.RU


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

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1692
Откуда: Донецк, ДНР
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
Сообщения: 3263
Откуда: Кемеровская область, Киселевск
#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
Сообщения: 1692
Откуда: Донецк, ДНР
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
Сообщения: 3263
Откуда: Кемеровская область, Киселевск
а с 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
Сообщения: 1692
Откуда: Донецк, ДНР
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
Сообщения: 3263
Откуда: Кемеровская область, Киселевск
ХЗ че он там мутит. А вы с SDIO используете через DMA? В моей фат вообще никаких таблиц нет и все пашет как конь.

_________________
RADIOWOLF.RU


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

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1692
Откуда: Донецк, ДНР
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
Сообщения: 3263
Откуда: Кемеровская область, Киселевск
не получиться, у меня взаимосвязи другие и логика работы другая. в лоб заменить не выйдет.

_________________
RADIOWOLF.RU


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

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


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

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

_________________
RADIOWOLF.RU


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

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


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

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

_________________
RADIOWOLF.RU


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

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2560
Что у меня удавалось:
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
Сообщения: 1692
Откуда: Донецк, ДНР
Я не знаю, скорость никогда не измерял.


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

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1692
Откуда: Донецк, ДНР
Я наконец понял, что сделала эта японская сволочь в 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
Сообщения: 2560
Если всё удастся - выложите фикс, потомкам будет полезно.


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

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


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

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3263
Откуда: Кемеровская область, Киселевск
Мой код для 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 Кб | Просмотров: 1191 ]

_________________
RADIOWOLF.RU


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

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


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


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

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

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

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

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


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


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

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

_________________
RADIOWOLF.RU


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

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


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

Сейчас этот форум просматривают: kos, Редиска, Sergey_spb


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

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

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