Гость MALLOY2 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Точнее это не баг, а скорее неудобство, для IAR это фича, при компиляции асмовских файлов (*.s) если в коментах встречается буква "я", компилятор выдает ошибку Error[4]: Unexpected end of file encountered D:\DEVELOP\Filin\FirmWare\Source\Internet_crc.s 52 Error while running Assembler в младших версиях такого не наблюдал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Пишите большую букву Я если сильно хочется использовать кириллицу. Код маленькой буквы я совпадает с символом конца файла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Старые версии MATLAB этим тоже грешили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Код маленькой буквы я совпадает с символом конца файла. Это как он может совпадать? Код я - 255 ( в Win1251) , а конец файла ^Z( 26 = 0x1A) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fmdost 0 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Это как он может совпадать? Код я - 255 ( в Win1251) , а конец файла ^Z( 26 = 0x1A) В KEILе, в отладчике, терминал "я" тоже не кажет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Это как он может совпадать? Код я - 255 ( в Win1251) , а конец файла ^Z( 26 = 0x1A)Маленькую "я" не только компиляторы не любят. Например, стандартная программка из комплекта Windows "Таблица символов" (\system32\charmap.exe) не переносит. Запустите программу. Выберите любой TrueType шрифт. Откройте доп. параметры просмотра. Смените кодировку на любую другую, отличающуюся от Юникод. Например, Windows: кириллица. А теперь прокрутите лифт окна символов до маленькой "я". Получилось? ;) У меня нет. Программа аварийно завершается :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Получилось? ;) У меня нет. Программа аварийно завершается :laughing: Гы, а у меня получается без проблем. А вообще, ИМХО, стоит избегать кириллицы в путях, именах пользователей и, конечно, в исходных текстах. Английским языком на уровне написания лаконичных комментариев уважающий себя инженер владеть обязан. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба А ещё виндовый гипертерминал "я" проглатывает. А вообще, ИМХО, стоит избегать кириллицы в путях, именах пользователей и, конечно, в исходных текстах. Это конечно да, но иногда надо выводить русские надписи для пользователя:) Поэтому я использую кодировку DOS, там "я" на другом месте, и всё замечательно отображается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Если речь идет о компиляторе для ARM, то позавчера вышел новый билд 5.40.4 build 1619 (full-версия). Выложена на FTP. Просьба испытать и сообщить, как у нее обстоит дело с буквой 'я'. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 2 октября, 2009 Опубликовано 2 октября, 2009 · Жалоба Просьба испытать и сообщить, как у нее обстоит дело с буквой 'я'. Полагаю, что не для того в IAR вводили фичу - дополнительный разделитель 0xFF дабы по стонам на электрониксе его сразу и убирать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 4 октября, 2009 Опубликовано 4 октября, 2009 · Жалоба Полагаю, что не для того в IAR вводили фичу - дополнительный разделитель 0xFF дабы по стонам на электрониксе его сразу и убирать. И тем не менее, в новой версии от 1 октября (5.40.4 build 1619 full) баг пропал! Я не стала дожидаться пока народ отгуляет выходные и проинсталлировала новый продукт у себя. Инсталляется долго, но это не удивительно - компиляторы для ARM великаны по сравнению с остальными. Запустила на компиляцию один из примеров из папки "\example" и убедившись, что компиляция прошла успешно без ошибок и варнингов, отредактировала одну и строковых переменных, заменив в ней английские буквы русскими. Естественно, включяя злополучную маленькую "я". Повторная компиляция прошла нормально, без сучка и задоринки. Вообще-то с архитектурой ARM я дела никогда не имела, но компиляторы от IAR все на одно лицо. На всякий случай прошу поверить мой результат. Полагаю, что дело тут не в стонах на электрониксе, а в вещах куда более серьезных - совсем недавно (21 сентября) была проведена "японизация" - выпущена версия EWARM-5401J. Я сначала подумала, что буква J относится к номеру версии, т.к. частенько у IAR'а выходят версии, маркируемые на конце буквой, и лишь недавно они перешли чисто на числовую кодировку (и то не везде). Я уж его на FTP успела выложить, а когда поняла, что это японская версия, стерла. Вот и нынешняя версия несет на себе явные следы японизации - слово "Japanese" с мелким японским национальным флажком в правом верхнем углу заставки инсталлятора, и предложение двух языков на выбор - английского и японского (других нет). Весьма вероятно, что символ 0xFF стал допустим из-за того, что компилятор они написали в расчете на юникод. Иначе японскую письменность никак не поддержать. Однако выбрала я при инсталляции английский вариант, в котором ничего японского не обнаружила. Все хелпы по-английски. Короче говоря, всем рекомендую эту версию. Выложила на FTP, куда положено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 5 октября, 2009 Опубликовано 5 октября, 2009 · Жалоба И тем не менее, в новой версии от 1 октября (5.40.4 build 1619 full) баг пропал! Только что попробовал. Никуда не пропал, все на месте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 5 октября, 2009 Опубликовано 5 октября, 2009 · Жалоба Только что попробовал. Никуда не пропал, все на месте. Прошляпила, что баг касается языка ассемблера. На C и C++ он, по-видимому, не проявляется. Если так, то дело не так плохо - на ассемблере для ARM мало кто пишет :). А если пишет, то в комментариях можно вполне обойтись без буквы я. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 8 ноября, 2009 Опубликовано 8 ноября, 2009 · Жалоба Всем доброго времени суток! Не стал создавать новую тему потому как мож у меня моск под утро двинулся. IAR C/C++ Compiler for ARM 5.40.1.51558 (5.40.1.51558). Код: ... INT i, sw_size, cnt, i_head, free; ... /* Get SW FIFO fields */ ptr = p_eps->data; sw_size = p_eps->sw_size; i_head = p_eps->i_head; free = sw_size - p_eps->len; /* Calculate size for new data payload */ ... while(free--) /* Read new data */ { ptr[i_head++] = AT91C_BASE_UDP->UDP_FDR[ep]; if(i_head >= sw_size) i_head = 0; } переменная free не может быть меньше нуля, так как sw_size не может быть меньше len. Поясню - sw_size - это размер FIFO буфера, len- количество полезных данных в пакете. При очередном зависоне торможу программу и вижу, что sw_size равно len, при этом free в минусе :blink: Если вместо while(free--) ставлю for(i = 0; i < free; i++) все работает прекрасно. Вот такая ботва. Тока не пойму, у меня в голове или баг компилятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 8 ноября, 2009 Опубликовано 8 ноября, 2009 · Жалоба Для начала проверьте, не случается ли у вас, что free изначально меньше нуля (ловушку какую-нибудь влепите). Ну, и дизассемблер "подозрительной" части выложите. ИМХО, вероятность того, что это глюк ИАРа стремится к нулю, хе-хе :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться