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

 
 
7 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> WinAVR-20080610, делимся впечатлениями
haker_fox
сообщение Jun 24 2008, 03:57
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 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.
Прикрепленные файлы
Прикрепленный файл  makefiles.zip ( 5.81 килобайт ) Кол-во скачиваний: 115
 


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
733259
сообщение Jun 24 2008, 07:56
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146



По сравнению с 3.4.6 по прежнему проигрывает.

ЗЫ Залил одну прошивку, все работает.

Сообщение отредактировал 733259 - Jun 24 2008, 07:59
Go to the top of the page
 
+Quote Post
kurtis
сообщение Jun 24 2008, 08:48
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Цитата(haker_fox @ Jun 24 2008, 06:57) *
.....
Самое интересное, что при очистке проекта
Код
make clean
вылетает такая ошибка
.....

У меня та же самая проблема, но только я поставил WinAVR-20071221, а до этого стоял(и продолжает стоять) WinAVR-20070525. Причем в том же месте где лежит makefile создается еще rm.exe.stackdump. Так что видимо проблема не в новом релизе
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 25 2008, 01:40
Сообщение #4


Познающий...
******

Группа: Свой
Сообщений: 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. Так что видимо проблема не в новом релизе

Странно,что проблема не устраняется уже полгода. Может быть такая ошибка возникает, если стоят предыдущие версии? Но вроде не должно...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
viakon
сообщение Jun 25 2008, 03:53
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Цитата(haker_fox @ Jun 24 2008, 08:57) *
Полностью не работает.

Разобраться бы почему. У меня тоже проекты все на winavr-20070525 писаны, при переходе на новые версии начинаются глюки. Есть подозрение , что дело в оптимизации.

Сообщение отредактировал viakon - Jun 25 2008, 03:54
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 25 2008, 04:33
Сообщение #6


Познающий...
******

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



Цитата(viakon @ Jun 25 2008, 12:53) *
Разобраться бы почему. У меня тоже проекты все на winavr-20070525 писаны, при переходе на новые версии начинаются глюки. Есть подозрение , что дело в оптимизации.

А у Вас с какой версии проблемы начинаются? С 20071221?
А почему оптимизация?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
733259
сообщение Jun 25 2008, 04:33
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146



ИМХО это уже не раз обсуждалось, в четверке новые методы оптимизации, в том числе - "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 вооще нет смысла переходить, прошивка всегда больше, скорость меньше.
Был бы рад узнать, что не так.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 25 2008, 04:54
Сообщение #8


Познающий...
******

Группа: Свой
Сообщений: 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 меньше.
Программа, написанная мной, активно использует классы, наследование и т.д. Может быть это является камнем предкновения? Обычный Си код не проверял.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
733259
сообщение Jun 25 2008, 05:10
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146



Эти 20070525, 20071221 никакой инфы о компилере не несут, avr-gcc -v
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 25 2008, 05:28
Сообщение #10


Познающий...
******

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



Код
>c:\winAVR-20070525\bin\avr-gcc --version
avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


>c:\winAVR-20071221\bin\avr-gcc --version
avr-gcc (GCC) 4.2.2 (WinAVR 20071221)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


>c:\winAVR-20080610\bin\avr-gcc --version
avr-gcc (WinAVR 20080610) 4.3.0
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
viakon
сообщение Jun 25 2008, 05:29
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



А пользую только С никаких С++, так что дело вряд ли в этом. ставил я апрельскую версию этого года, один проект частично заработал когда на переменные volatile поставил, но полностью это не помогло. Склоняюсь, что дело в оптимизаторе, надо понять что ему не нравится. Разбираться некогда, вернул старую версию.

Сообщение отредактировал viakon - Jun 25 2008, 05:34
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 25 2008, 05:30
Сообщение #12


Познающий...
******

Группа: Свой
Сообщений: 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‘?‘/‘


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
aesok
сообщение Jun 25 2008, 05:41
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(viakon @ Jun 25 2008, 09:29) *
А пользую только С никаких С++, так что дело вряд ли в этом. ставил я апрельскую версию этого года, один проект частично заработал когда на переменные volatile поставил, но полностью это не помогло. Склоняюсь, что дело в оптимизаторе, надо понять что ему не нравится. Разбираться некогда, вернул старую версию.


Все сборки WinAVR 2008 года (с avr-gcc 4.3) до майской могут не сохранять используемые регистры в обработчиках прерываний.

Анатолий.
Go to the top of the page
 
+Quote Post
viakon
сообщение Jun 25 2008, 05:43
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



интересно, и уменя проблемы c UART были. Работал c GPRS модемом и все команды ответы выводились на консоль. С новой версией при инициализации с какойто команды начинал валиться мусор. А часть проходила нормально.

Цитата(aesok @ Jun 25 2008, 10:41) *
Все сборки WinAVR 2008 года (с avr-gcc 4.3) до майской могут не сохранять используемые регистры в обработчиках прерываний.

Анатолий.

Читал про это. Пробовал я и майскую, тоже самое sad.gif
Недогадался попробовать оптимизацию выключить.

Сообщение отредактировал viakon - Jun 25 2008, 05:45
Go to the top of the page
 
+Quote Post
aesok
сообщение Jun 25 2008, 05:45
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(viakon @ Jun 25 2008, 09:43) *
Читал про это. Пробовал я и майскую, тоже самое sad.gif


Пожалуйста покажие проблемный код.

Анатолий.

Сообщение отредактировал aesok - Jun 25 2008, 05:46
Go to the top of the page
 
+Quote Post

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

 


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


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