|
|
  |
WinAVR-20080610, делимся впечатлениями |
|
|
|
Jun 24 2008, 03:57
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Скачал. Установил. Приятно удивил результат. Проект скомпилированный на WinAVR-20070525 занимает 6452 байт. Работает. Проект скомпилированный новым компиляторм занимает 5396 байт. Полностью не работает. Детальный анализ пока не проводил. Серьезных багов не видел. makefile используется один и тот же, только пути разные подставляются для вызова разных версий утилит. Самое интересное, что при очистке проекта Код make clean вылетает такая ошибка Код 0 [main] rm 3292 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 111988 [main] rm 3292 open_stackdumpfile: Dumping stack trace to rm.exe.stackdump make.exe: *** [clean] Error -1073741819 Компилирует на первый взгляд нормально, но при заливке кода в МК ничего не работает. Вот... P.S. Версия WinAVR-20071221 полет нормальный. Только очистка вылетает с такой же ошибкой. Свои makefile прикрепляю на всякий случай. Они абсолютно одинаковы, за исключением путей к утилитам пакетов WinAVR.
--------------------
Выбор.
|
|
|
|
|
Jun 24 2008, 08:48
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
Цитата(haker_fox @ Jun 24 2008, 06:57)  ..... Самое интересное, что при очистке проекта Код make clean вылетает такая ошибка ..... У меня та же самая проблема, но только я поставил WinAVR-20071221, а до этого стоял(и продолжает стоять) WinAVR-20070525. Причем в том же месте где лежит makefile создается еще rm.exe.stackdump. Так что видимо проблема не в новом релизе
|
|
|
|
|
Jun 25 2008, 01:40
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(733259 @ Jun 24 2008, 16:56)  По сравнению с 3.4.6 по прежнему проигрывает.
ЗЫ Залил одну прошивку, все работает. Хм. В чем же дело у меня? Видимо придется листинги смотреть, но времени пока нет. Проект хоть не горит, но делать надо... Цитата(kurtis @ Jun 24 2008, 17:48)  У меня та же самая проблема, но только я поставил WinAVR-20071221, а до этого стоял(и продолжает стоять) WinAVR-20070525. Причем в том же месте где лежит makefile создается еще rm.exe.stackdump. Так что видимо проблема не в новом релизе Странно,что проблема не устраняется уже полгода. Может быть такая ошибка возникает, если стоят предыдущие версии? Но вроде не должно...
--------------------
Выбор.
|
|
|
|
|
Jun 25 2008, 03:53
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(haker_fox @ Jun 24 2008, 08:57)  Полностью не работает. Разобраться бы почему. У меня тоже проекты все на winavr-20070525 писаны, при переходе на новые версии начинаются глюки. Есть подозрение , что дело в оптимизации.
Сообщение отредактировал viakon - Jun 25 2008, 03:54
|
|
|
|
|
Jun 25 2008, 04:54
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(733259 @ Jun 25 2008, 13:33)  ИМХО это уже не раз обсуждалось, в четверке новые методы оптимизации, в том числе - "GCC can now do a form of partial dead code elimination (PDCE) that allows code motion of expressions to the paths where the result of the expression is actually needed. This is not always a win, so the pass has been limited to only consider profitable cases." Выкидывает код, может где volatile не хватает, может глюки.
ИМХО на четверку для AVR вооще нет смысла переходить, прошивка всегда больше, скорость меньше. Был бы рад узнать, что не так. Сейчас проверил, что даже при отключенной оптимизации не работает код. На данный момент стабильно работают версии WinAVR-20070525, WinAVR-20071221. Последняя генерит код байт на 300 меньше. Программа, написанная мной, активно использует классы, наследование и т.д. Может быть это является камнем предкновения? Обычный Си код не проверял.
--------------------
Выбор.
|
|
|
|
|
Jun 25 2008, 05:30
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(733259 @ Jun 25 2008, 13:33)  ИМХО это уже не раз обсуждалось, в четверке новые методы оптимизации Прошу пролщения, а о какой четверке идет речь? Эти три версии все 4.x.x Четверки во второй цифре версии вообще нет. PS Могу полностью выложить свой проект. Коммерческой тайны пока не представляет, но очень громоздок. Может быть это поможет улучшить компилятор или мои мозги) Проект заточен для управления движком. Но его достаточно зашить в МК. При сбросе в UART на скорости 19200 выведется строка Код [Motor Controller "FREESTYLE-1", v. 0.01] Еслит компилировать новой версией, то сразу при сбросе выводится вот прмерно такой мусор Код ’¤2±Щ?a¤a?aА’¬;±a?aИaРaА"—ю”Г-A5NE?” ”C- ”‘‘y‘o‘_‘O‘?‘/‘ѕ•’’¶’$/”?”O” _”o”””Ÿ”Ї”?”i”y”?”П”I·Ю· a’a”¦П‘?‘y‘i‘?‘Ї‘Ÿ‘‘y‘o‘_‘O‘?‘/‘ѕ•’’¶’$/”?”O”_”o”””Ÿ”Ї”?”i”y”?”П”I·Ю·ˆ‘† ?ˆ”†ˆ‘‡?ˆ”‡ˆ‘?ˆ” a’a”?П‘?‘y‘i‘?‘Ї‘Ÿ‘‘y‘o‘_‘O‘?‘/‘
--------------------
Выбор.
|
|
|
|
|
Jun 25 2008, 05:41
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(viakon @ Jun 25 2008, 09:29)  А пользую только С никаких С++, так что дело вряд ли в этом. ставил я апрельскую версию этого года, один проект частично заработал когда на переменные volatile поставил, но полностью это не помогло. Склоняюсь, что дело в оптимизаторе, надо понять что ему не нравится. Разбираться некогда, вернул старую версию. Все сборки WinAVR 2008 года (с avr-gcc 4.3) до майской могут не сохранять используемые регистры в обработчиках прерываний. Анатолий.
|
|
|
|
|
Jun 25 2008, 05:43
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
интересно, и уменя проблемы c UART были. Работал c GPRS модемом и все команды ответы выводились на консоль. С новой версией при инициализации с какойто команды начинал валиться мусор. А часть проходила нормально. Цитата(aesok @ Jun 25 2008, 10:41)  Все сборки WinAVR 2008 года (с avr-gcc 4.3) до майской могут не сохранять используемые регистры в обработчиках прерываний.
Анатолий. Читал про это. Пробовал я и майскую, тоже самое  Недогадался попробовать оптимизацию выключить.
Сообщение отредактировал viakon - Jun 25 2008, 05:45
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|