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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Вышел WinAVR 20080402...20080411, сыроват еще
Сергей Борщ
сообщение Apr 3 2008, 13:46
Сообщение #1


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Вчера еще лежал 20080402-rc1, сегодня уже 20080402.
из плюсов по сравнению с 20071221 - не выдает ошибочное предупреждение
Цитата
warning: only initialized variables can be placed into program memory area
gcc версии 4.3.0. Выдает нелепые предупреждения-пожелания поставить скобки в выражениях типа X = Y << 2 + 5. просит отделить пробелом точку с запятой от пустого цикла:
Код
while(!ready()); //<- ругается
while(!ready())<пробел>; //<- а так нет


из минусов - начали переделывать eeprom.h, изменили порядок параметров у eeprom_write_block(), теперь порядок соответствует memcpy, memmove и т.д. Могли бы и название другое дать - теперь при смене версии приходится переписывать исходник или добавлять функцию-обертку с условной компиляцией. В файле встречаются ссылки на функции __eerd_block() и __eewr_block(), которых линкер не нашел. Соответственно проект не собрался, качество кода сравнить не могу. Описание eeprom.h убрано из документации avr-libc.
Не нашел своих же ситемных заголовочных файлов - пришлось указать путь вручную через ключ -I (возможно криво встал - вечером проверю на домашнем компе). Вчера ставил дома rc2 - он заголовочники находил.

make, sh и прочие оставлись теми же, что и в предыдущих версиях. Проблема, описанная в соседней ветке осталась.

Убрали АДУ.

Пока это все, что заметил.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 8 2008, 15:08
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Сергей Борщ @ Apr 3 2008, 16:46) *
Вчера еще лежал 20080402-rc1, сегодня уже 20080402.
Хм. Оба спрятали, выложили 20080407.

Цитата(Сергей Борщ @ Apr 3 2008, 16:46) *
из плюсов по сравнению с 20071221 - не выдает ошибочное предупреждение
Таки выдает. На переменные с атрибутом PROGMEM и на PSTR(). На переменные, объявленные с PROGMEM через typedef (например, через типы введенные в avr/pgmspace.h) - не выдает.
Цитата(Сергей Борщ @ Apr 3 2008, 16:46) *
из минусов - начали переделывать eeprom.h, изменили порядок параметров у eeprom_write_block(), теперь порядок соответствует memcpy, memmove и т.д.
Вернули назад. Снова совместимо с предыдущими версиями.
Цитата(Сергей Борщ @ Apr 3 2008, 16:46) *
В файле встречаются ссылки на функции __eerd_block() и __eewr_block(), которых линкер не нашел.
Так и осталось.
Цитата(Сергей Борщ @ Apr 3 2008, 16:46) *
Соответственно проект не собрался, качество кода сравнить не могу.
Закомментировал обращение к eeprom. Не смотрел еще, что они там улучшили, но статистика по нескольким проектам такая:
Код
                        20070525   20071221    20080407
mega8                     3486       3392        3142
mega8                     5958       6070        6050
mega128 (AES loader)      2368       2402        2560
Первый проект писался без напряжения, второй - "утаптывался" чтобы влезть в доступную память, третий - портирован с ИАРа, тоже "утоптан" но не очень сильно.
Цитата(Сергей Борщ @ Apr 3 2008, 16:46) *
Не нашел своих же ситемных заголовочных файлов - пришлось указать путь вручную через ключ -I
Осталось.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 8 2008, 15:46
Сообщение #3


Знающий
****

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



Цитата(Сергей Борщ @ Apr 8 2008, 18:08) *
Закомментировал обращение к eeprom. Не смотрел еще, что они там улучшили, но статистика по нескольким проектам такая:
Код
                        20070525   20071221    20080407
mega8                     3486       3392        3142
mega8                     5958       6070        6050
mega128 (AES loader)      2368       2402        2560
Первый проект писался без напряжения, второй - "утаптывался" чтобы влезть в доступную память, третий - портирован с ИАРа, тоже "утоптан" но не очень сильно.


Пожалуйста протестируйте версию 20080407 с ключем "--param inline-call-cost=5"

Анатолий
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2008, 15:49
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Выходит, плюсов как таковых - нет вовсе? :-)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 8 2008, 17:54
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(aesok @ Apr 8 2008, 18:46) *
Пожалуйста протестируйте версию 20080407 с ключем "--param inline-call-cost=5"

Пожалуйста. Результат меня заинтересовал, я проверил все три проекта с этим параметром от 0 до 10:
Код
0   3038    5812    2408
1   3038    5840    2408
2   3038    5878    2468
3   3128    5878    2538
4   3128    5918    2560
5   3128    5918    2560
6   3146    5966    2560
7   3146    6018    2560
8   3142    6018    2560
9   3142    6018    2560
10  3142    6018    2560
20          6116
20071221 на этот параметр не реагировал. Ключик возьму на заметку. А отрицательным его нельзя сделать? wink.gif

И что делать с eeprom?

P.S. странно - на домашнем компе системные заголовочные файлы компилятор нашел.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 8 2008, 18:13
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Сергей Борщ @ Apr 8 2008, 19:08) *
Не смотрел еще, что они там улучшили, но статистика по нескольким проектам такая:
Код
                        20070525   20071221    20080407
mega8                     3486       3392        3142
mega8                     5958       6070        6050
mega128 (AES loader)      2368       2402        2560
Первый проект писался без напряжения, второй - "утаптывался" чтобы влезть в доступную память, третий - портирован с ИАРа, тоже "утоптан" но не очень сильно.
Сергей Борщ а не осталось ли у Вас до кучи 20060421 ?
можете на нем попробовать ?
Думаю переползать на чего-нить посвежее, но пока не определился на какую версию,
был неудачный опыт попыток переползания на 200701xx, ну и я отложил это дело,
но когда-то ведь придется...
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 8 2008, 20:43
Сообщение #7


Знающий
****

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



Цитата(Сергей Борщ @ Apr 8 2008, 20:54) *
Пожалуйста. Результат меня заинтересовал, я проверил все три проекта с этим параметром от 0 до 10:
Код
0   3038    5812    2408
1   3038    5840    2408
2   3038    5878    2468
3   3128    5878    2538
4   3128    5918    2560
5   3128    5918    2560
6   3146    5966    2560
7   3146    6018    2560
8   3142    6018    2560
...

Странно у меня минимум был при значениях 4..6, при больших и меньших размер кода увеличивался.

Цитата
И что делать с eeprom?


Не слежу я за ним. Его уже второй раз полностью переписывают.

Анатолий.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 8 2008, 20:54
Сообщение #8


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(aesok @ Apr 9 2008, 00:43) *
Его уже второй раз полностью переписывают.
Анатолий.
Интересно, а чтение/сравнение перед записью когда-нить есть шансы увидеть в
библиотеке ?
Все таки запись ради записи, ИМХО, выглядит ущербно, учитывая то что на реализацию этого
нужны доли % производительности...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 8 2008, 21:10
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(singlskv @ Apr 8 2008, 21:13) *
Сергей Борщ а не осталось ли у Вас до кучи 20060421 ?
можете на нем попробовать ?
Не было, поставил.
первый проект после подтачивания скрипта линкера дал 3901
второй не скомпилился: error: cannot bind packed field `Msg_DriverID.msg_driver_id_t::Time' to `systime_t&'
третий заоптимизировал в ноль - включена --gc-sections, а его скрипты линкера с этой опцией несовместимы. К счастью, в этом проекте у меня --gc-sections ничего не выкидывает, без --gc-sections получилось 2462.



Цитата(aesok @ Apr 8 2008, 23:43) *
Странно у меня минимум был при значениях 4..6, при больших и меньших размер кода увеличивался.
А вы при компиляции задаете -Winline? Для меня было большим сюрпризом, что несмотря на inline и на определение функций-членов в объявлении классов gcc часто решает не встраивать некоторые функции. Спасает только __attribute__((always_inline)). В процессе "утаптывания" этих исходников все функции, вызываемые только в одном месте были объявлены с __attribute__((always_inline)), т.е. код сделан максимально линейным. Возможно с этим связана такая разница в результатах.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 8 2008, 21:22
Сообщение #10


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Сергей Борщ @ Apr 9 2008, 01:10) *
Не было, поставил.
первый проект после подтачивания скрипта линкера дал 3901
Спасибо, впрочем я так и не понял какую из версий стоит пробовать sad.gif
Придется протестировать на своих исходниках...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 11 2008, 22:49
Сообщение #11


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(singlskv @ Apr 9 2008, 00:22) *
Спасибо, впрочем я так и не понял какую из версий стоит пробовать sad.gif
Придется протестировать на своих исходниках...


Я тоже протестировал 20080407 на себе.
При оптимизации о2 размер всех моих проектов слегка увеличился.
Игры с "--param inline-call-cost" впечатляют...

Есть проблемы с заголовочным файлом "math.h"
пришлось убрать из него определение функций:
Код
__ATTR_CONST__ extern inline int isfinite (double __x)
{
....
}
__ATTR_CONST__ extern inline double copysign (double __x, double __y)
{
....
}

А то на них были маты...
Кстати, та же фигня была и в сборке от Клёна...
В остальном всё ГУД!

Сообщение отредактировал demiurg_spb - Apr 11 2008, 22:53


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Антон Малыгин
сообщение Apr 12 2008, 12:37
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 11-05-07
Из: Коряжма
Пользователь №: 27 672



Помоему с официального сайта эту версию уже убрали..
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Apr 12 2008, 22:05
Сообщение #13


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



На официальном сайте сейчас другая версия:
WinAVR-20080411 от 2008-04-12 12:24
Похоже надо подождать действительно релиза, что-то подобное было и с предыдущей версией.
bb-offtopic.gif Название темы пора менять или новую открывать smile.gif


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Apr 17 2008, 10:17
Сообщение #14


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

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



А я пока до сих пор использую WinAVR20070525, даже до декабрьской версии прошлого года обнавляться побаиваюсь) Полет нормальный. Как понимаю, обновляться до версии 2008 года пока рано.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 17 2008, 10:49
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(haker_fox @ Apr 17 2008, 13:17) *
Как понимаю, обновляться до версии 2008 года пока рано.
В 20080411 поправили eeprom. То есть все компилится, в железе не пробовал.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


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


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