реклама на сайте
подробности

 
 
> UNICODE в WinAVR
777777
сообщение Jul 31 2008, 04:42
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Оказывается WinAVR знает о существовании UNICODE. Если написать строку

int Name[] PROGMEM = L"name";

то он ее успешно транслирует. Более того, он знает о существовании типа wchar_t, так как если не поставить L перед строкой, то он выдает ошибку "wchar_t-array initialized from non-wide string". Однако если написать

wchar_t Name[] PROGMEM = L"name";

то он на нее ругается. Но самая главная неприятность - если написать в строке русские буквы

int Name[] PROGMEM = L"Имя устройства";

То он их начисто отказывается понимать. Возникает законный вопрос - насколько далеко у WinAVR просираются знания о UNICODE и если они ограничиваются латинскими буквами - то на фига он нужен?!

Сообщение отредактировал 777777 - Jul 31 2008, 04:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Jul 31 2008, 07:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(777777 @ Jul 31 2008, 06:42) *
...то на фига он нужен?!

Увы, иногда нужна и латиница, например, идентификаторы USB-ишные sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 31 2008, 09:51
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(zltigo @ Jul 31 2008, 11:12) *
Увы, иногда нужна и латиница, например, идентификаторы USB-ишные sad.gif


Иногда? smile.gif ну-ну.
Мне как раз и надо идентификатор USB-шный. Только я хочу назвать его по-русски. Для того юникод и придуман. И если этот крутой gnu-тый компилятр, которым так восхищаются виндовсоненавистники ограничивает свое знание юникода латинскими буквами, то... мне жалко этих несчастных фанатиков.
Go to the top of the page
 
+Quote Post
amw
сообщение Jul 31 2008, 11:04
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(777777 @ Jul 31 2008, 12:51) *
Иногда? smile.gif ну-ну.
Мне как раз и надо идентификатор USB-шный. Только я хочу назвать его по-русски. Для того юникод и придуман. И если этот крутой gnu-тый компилятр, которым так восхищаются виндовсоненавистники ограничивает свое знание юникода латинскими буквами, то... мне жалко этих несчастных фанатиков.

Прежде чем возмущатся неплохо бы подумать что значит поддержка юникода и поместиться ли она во флеш AVR.
А оскорблять людей (в том числе и теоретически существующих ненавистников) найдите другое место.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 31 2008, 12:55
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(amw @ Jul 31 2008, 15:04) *
Прежде чем возмущатся неплохо бы подумать что значит поддержка юникода и поместиться ли она во флеш AVR.


Поддержка юникода - это возможность компилятора генерить строки в юникодной кодировке, ни одного байта во флеше AVR для этого не требуется. И, увидев, что компилятор умеет транслиовать строку L"name" я справедливо решил, что он сможет оттранслировать и L"имя" - а иначе зачем тогда вообще поддержка префикса 'L'?! Оказалось - нет. Надеюсь, вы в состоянии представит мое разочарование. Это примерно то же, как увидеть на дороге кошелек с торчащими из него баксами, наклониться за ним, но тут мальчик, сидящий за кустом дергает за ниточку и вместе со своими друзьями начинает ржать.

Или может все-такие есть какие-то ключи? Ведь кто-то из здесь присутствующих наверняка делал устройства, работающие через USB, неужени вы набивали имя шестнадцатеричными числами?

Сообщение отредактировал 777777 - Jul 31 2008, 12:59
Go to the top of the page
 
+Quote Post
amw
сообщение Aug 1 2008, 19:45
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(777777 @ Jul 31 2008, 15:55) *
Ведь кто-то из здесь присутствующих наверняка делал устройства, работающие через USB, неужени вы набивали имя шестнадцатеричными числами?

Код
#define UNICODE(x)        (x), 0x00

const struct USB_STRING_DESCRIPTOR usb_mfg_desc = {
    .bLength        = 2 + 17 * 2,
    .bDescriptorType    = USB_DESC_STRING,
    .bString        = {
        UNICODE('D'),
        UNICODE('A'),
        UNICODE('C'),
        UNICODE(' '),
        UNICODE('I'),
        UNICODE('n'),
        UNICODE('t'),
        UNICODE('e'),
        UNICODE('r'),
        UNICODE('n'),
        UNICODE('a'),
        UNICODE('t'),
        UNICODE('i'),
        UNICODE('o'),
        UNICODE('n'),
        UNICODE('a'),
        UNICODE('l')
    }
};

Думаю модифицировать макрос для нужного языка неслжоно.

PS: Желание использовать какой-либо иной язык, кроме английского, в дескрипторах было напрочь отбито, когда устройство через 2 года производства вставили в ПК с Milenium (помните такую версию винды?) и ее разнесло в "дребезги-пополам" ((С) Жванецкий). Пришлось отзывать 100000 устройств и перешивать дескрипторы. Возможно в XP или Vista дело улучшилось, но предпочитаю не рисковать.

Цитата(AHTOXA @ Aug 1 2008, 21:27) *
2. Открыл main.c в блокноте, и сохранил его в формате UTF-8

А разве UTF-8 катит для дескриптора? Разве там не UTF-16?

bb-offtopic.gif
Цитата
Мне категорически не надо, чтобы мои исходники были в UTF-8.


Мои исходники всегда в UTF-8. И чем это мешае компилятору? Он соответствует ASCII относительно собственно кода.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   UNICODE в WinAVR   Jul 31 2008, 04:42
|- - mdmitry   Цитата(amw @ Jul 31 2008, 15:04) Прежде ч...   Jul 31 2008, 11:20
|- - zltigo   Цитата(amw @ Jul 31 2008, 13:04) Прежде ч...   Jul 31 2008, 12:19
|- - AHTOXA   Цитата(amw @ Aug 2 2008, 01:45) А разве U...   Aug 1 2008, 21:40
|- - amw   Цитата(AHTOXA @ Aug 2 2008, 00:40) Компил...   Aug 4 2008, 18:24
- - ukpyr   вообще-то WinAVR - это сборка GCC под Win, AVR-Lib...   Jul 31 2008, 13:57
|- - 777777   Цитата(ukpyr @ Jul 31 2008, 17:57) вообще...   Jul 31 2008, 15:06
|- - aesok   Цитата(777777 @ Jul 31 2008, 19:06) Ну да...   Jul 31 2008, 15:39
|- - 777777   Цитата(aesok @ Jul 31 2008, 19:39) А вот ...   Aug 1 2008, 06:44
|- - aesok   Цитата(777777 @ Aug 1 2008, 10:44) Остало...   Aug 1 2008, 07:04
|- - 777777   Цитата(aesok @ Aug 1 2008, 11:04) http://...   Aug 1 2008, 07:43
|- - aesok   Цитата(777777 @ Aug 1 2008, 11:43) Здесь ...   Aug 1 2008, 13:49
|- - AHTOXA   У меня на -finput-charset ругается более определён...   Aug 1 2008, 14:14
|- - 777777   Цитата(AHTOXA @ Aug 1 2008, 18:14) 1. Нап...   Aug 4 2008, 09:42
- - ukpyr   эти параметры описаны тут : http://gcc.gnu.org/onl...   Jul 31 2008, 16:36
- - ukpyr   Ваш редактор не знает UTF-8 ? o_O возмите хотя-бы ...   Aug 1 2008, 17:30
|- - AHTOXA   Цитата(ukpyr @ Aug 1 2008, 23:30) Ваш ред...   Aug 1 2008, 18:27
- - ukpyr   ЦитатаХорошо известно, что юникод поддерживают тол...   Aug 4 2008, 19:04
- - 777777   Цитата(ukpyr @ Aug 4 2008, 23:04) это с ...   Aug 5 2008, 05:30
- - Andrew O. Shadoura   Цитата(777777 @ Aug 5 2008, 08:30) Запуст...   Aug 9 2008, 22:56


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01773 секунд с 7
ELECTRONIX ©2004-2016