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

 
 
> WinAVR-20100110, Пишем отзывы сюда
_Pasha
сообщение Jan 16 2010, 00:18
Сообщение #1


;
******

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



Собсно сабж.
Попробовал пока ничего плохого не могу сказать. За выходные разберемся
Слито вместе avr & avr32. Прикольно. 275 метров

AVR-gcc 4.3.3
AVR32-gcc 4.3.2
Make 3.81 - наконец-то ! Или он уже давно там... не помню, ну да ладно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Jan 16 2010, 20:30
Сообщение #2


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



а как вы поступаете: ставите сразу несколько копий WinAVR? как можно с удобством тестировать разные сборки компилятора на одинаковых проектах? как быть с прописыванием путей? неудобно же... или я в танке?


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 16 2010, 22:36
Сообщение #3


Гуру
******

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



Цитата(ARV @ Jan 16 2010, 22:30) *
а как вы поступаете: ставите сразу несколько копий WinAVR? как можно с удобством тестировать разные сборки компилятора на одинаковых проектах? как быть с прописыванием путей?
позаимствовано у ReAl: в makefile прописываем:
Код
#TOOLSET = C:/WinAVR/20090313
TOOLSET = C:/WinAVR/20100110
TARGET = avr-
CC = $(TARGET)gcc
OBJCOPY = $(TARGET)objcopy
OBJDUMP = $(TARGET)objdump
SIZE = $(TARGET)size

# if TOOLSET variable set,
# add TOOLSET bin directory first in PATH    
ifneq ($(strip $(TOOLSET)),)
ifeq (,$(findstring;,$(PATH)))
  PATH := $(subst :,,/$(TOOLSET)/bin):$(PATH)
else
  PATH := $(subst /,\,$(TOOLSET)/bin);$(PATH)
endif
export PATH
endif
Дальше раскомментируем нужную строчку TOOLSET= и все собирается нужной версией.


Цитата(_Pasha @ Jan 16 2010, 02:18) *
Make 3.81 - наконец-то ! Или он уже давно там... не помню, ну да ладно.
Уже давно. Но с древней глючной msys-1.0.dll. На днях автор закрыл мою очередную (датированную 2008-10-02) просьбу в баг-трекере заменить эту dll на более свежую с резолюцией won't fix. Уже давно сделал себе рабочий комплект утилит непосредственно с их родины - проекта msys и утилиты из WinAVRa идут в сад сразу.

По качеству кода - по сравнению с 20090319 на двух проектах код на одном вырос, на втором существенно сократился. Размеры проектов - 1836->1854 (загрузчик) и 6042->5816 (приложение, мега8, С++, виртуальные функции). Работоспособность не проверял. Опции оптимизации для последнего (подбирались по минимальному коду для 20090313):
Код
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
CFLAGS += -mcall-prologues

#CFLAGS += -fno-ivopts
CFLAGS += -fno-tree-scev-cprop
CFLAGS += -fno-split-wide-types
CFLAGS += -fno-inline-small-functions

CFLAGS += --param inline-call-cost=0
#CFLAGS += -fno-reorder-blocks
#CFLAGS += -fno-reorder-blocks-and-partition
#CFLAGS += -fno-reorder-functions
#CFLAGS += -fno-toplevel-reorder
CFLAGS += -fno-move-loop-invariants
#CFLAGS += -fno-unroll-loops
#CFLAGS += -fno-unroll-all-loops
#CFLAGS += --param max-unroll-times=0
Левое предупреждение "only initialized variables can be placed into program memory area" на плюсовых исходниках осталось. Баги 40112, 40013 остались.
Судя по рассылке - много правили в avr-libc. Имеет смысл переходить.

P.S. Заметил, что некорректно распаковал новую версию и сравнивал 20090313 с ней же. Исправил. Написаному выше теперь - верить.


--------------------
На любой вопрос даю любой ответ
"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
Сергей Борщ
сообщение Jan 21 2010, 14:34
Сообщение #4


Гуру
******

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



Цитата(Сергей Борщ @ Jan 17 2010, 00:36) *
Размеры проектов - 1836->1854 (загрузчик) и 6042->5816 (приложение, мега8, С++, виртуальные функции). Работоспособность не проверял.
Проверил. Код работает. Сравнил листинги (правда для другого проекта). Основное отличие - обращение к eeprom. В 20090313 процедура чтения|записи блока принимала в качестве параметра указатель на функцию чтения|записи байта и косвенно вызывала эту функцию. Теперь функция чтения/записи байта встроена в чтение/запись блока, благодаря чему экономится место как на загрузке указателя так и на перетасовке регистров при косвенном вызове. В 20100110 вся процедура чтения/записи блока (со встроенным обращением) меньше, чем обертка вызова функции чтения/записи байта в 20090313. Кроме этого в 20090313 независимо от -msave-prologue запись/чтение блока вызывала процедуры сохранения/восстановления регистров, которые в 20100110 не понадобились. Результат - уменьшение кода на 148 байт. В остальном код на этом конкретном проекте идентичный до байта. Вывод - теперь можно смело использовать eeprom_read_block(). В 20090313 эффективнее получалось вручную читать побайтно в цикле.


Остался недостаток оптимизации при работе с байтовыми аргументами функций: При вызове функции, объявленной с аргументом типа "байт" в регистры заносится 2 байта (старший = 0), внутри функции копия аргумента тоже хранится как двухбайтовая переменная, хотя используется только младший байт:
Код
void hd44780::write_data(uint8_t byte)
162:    ff 92           push    r15
164:    0f 93           push    r16
166:    1f 93           push    r17                             <-----------------------------------
168:    8c 01           movw    r16, r24                       <-----------------------------------
16a:    f6 2e           mov    r15, r22
{
    write_tetrade(byte & 0xF0);
16c:    60 7f           andi    r22, 0xF0; 240
16e:    ec df           rcall    .-40    ; 0x148 <_ZN7hd4478013write_tetradeEh>
    write_tetrade(byte << 4);
170:    f2 94           swap    r15
172:    80 ef           ldi    r24, 0xF0; 240
174:    f8 22           and    r15, r24
176:    c8 01           movw    r24, r16                            <-----------------------------------
178:    6f 2d           mov    r22, r15
17a:    e6 df           rcall    .-52    ; 0x148 <_ZN7hd4478013write_tetradeEh>
17c:    8d e3           ldi    r24, 0x3D; 61
17e:    8a 95           dec    r24
180:    f1 f7           brne    .-4     ; 0x17e <_ZN7hd4478010write_dataEh+0x1c>
    _delay_us(50);
    ON(LCD_RS);
182:    c1 9a           sbi    0x18, 1; 24
}
184:    1f 91           pop    r17                        <-----------------------------------
186:    0f 91           pop    r16
188:    ff 90           pop    r15
18a:    08 95           ret


--------------------
На любой вопрос даю любой ответ
"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

Сообщений в этой теме
- _Pasha   WinAVR-20100110   Jan 16 2010, 00:18
- - kurtis   Цитата(_Pasha @ Jan 16 2010, 02:18) Слито...   Jan 16 2010, 10:30
- - Petka   Цитата(_Pasha @ Jan 16 2010, 03:18) ... A...   Jan 16 2010, 10:31
- - SysRq   ЦитатаAVR32 GNU toolchain Splint 3.1.2 Splint is...   Jan 16 2010, 11:26
|- - zltigo   Цитата(SysRq @ Jan 16 2010, 14:26) 200812...   Jan 16 2010, 11:28
|- - SysRq   Цитата(zltigo @ Jan 16 2010, 14:28) А опт...   Jan 16 2010, 11:38
- - ARV   я тоже скачал официальный релиз и, как обычно (за ...   Jan 16 2010, 14:32
- - SysRq   Цитата(ARV @ Jan 16 2010, 17:32) ...разме...   Jan 16 2010, 15:00
- - demiurg_spb   Цитата(_Pasha @ Jan 16 2010, 03:18) Собсн...   Jan 16 2010, 19:12
|- - ReAl   Цитата(ARV @ Jan 16 2010, 22:30) а как вы...   Jan 17 2010, 08:25
- - _Pasha   Цитата(ARV @ Jan 17 2010, 00:30) а как вы...   Jan 17 2010, 05:55
|- - Сергей Борщ   Цитата(_Pasha @ Jan 17 2010, 07:55) Непри...   Jan 17 2010, 09:19
|- - Petka   Цитата(Сергей Борщ @ Jan 17 2010, 12:19) ...   Jan 17 2010, 10:00
||- - ReAl   Цитата(Petka @ Jan 17 2010, 12:00) Давно ...   Jan 17 2010, 15:35
||- - demiurg_spb   Цитата(Petka @ Jan 17 2010, 13:00) Давно ...   Jan 17 2010, 21:28
||- - ReAl   Цитата(demiurg_spb @ Jan 17 2010, 23:28) ...   Jan 17 2010, 22:38
|- - demiurg_spb   Цитата(Сергей Борщ @ Jan 17 2010, 01:36) ...   Jan 18 2010, 10:13
|- - Сергей Борщ   По msys - взять с http://sourceforge.net/projects/...   Jan 18 2010, 11:54
|- - demiurg_spb   Цитата(Сергей Борщ @ Jan 18 2010, 14:54) ...   Jan 18 2010, 13:07
|- - Сергей Борщ   Проинсталлил "честно". Оно копирует кучу...   Jan 18 2010, 14:54
- - Genadi Zawidowski   Было... ЦитатаAVR Memory Usage ---------------- De...   Jan 18 2010, 01:13
- - _Diman_   Я так приспособился разные версии проверять. Запу...   Jan 19 2010, 10:37
|- - _Pasha   Цитата(_Diman_ @ Jan 19 2010, 13:37) http...   Jan 19 2010, 11:05
- - Зайцев Иван   А кто нибуть использовал уже avr32-gcc? Если да то...   Jan 19 2010, 11:17
|- - klen   Цитата(Зайцев Иван @ Jan 19 2010, 14:17) ...   Jan 19 2010, 20:44
|- - Зайцев Иван   Цитата(klen @ Jan 20 2010, 01:44) а что т...   Jan 20 2010, 03:14
- - Cyber_RAT   http://sourceforge.net/projects/winavr/files/ опят...   Jan 20 2010, 21:29
|- - SysRq   Цитата(Cyber_RAT @ Jan 21 2010, 00:29) оп...   Jan 20 2010, 22:23
|- - _Pasha   Цитата(SysRq @ Jan 21 2010, 02:23) убраны...   Jan 21 2010, 03:59
- - Vova75   Ошибку  в прологе/эпилоге при использовании ISR(xx...   Jan 27 2010, 12:16
- - ReAl   Однако... То-то я чуйкой какой-то ("шестое ч...   Feb 4 2010, 21:24
|- - _Pasha   Цитата(ReAl @ Feb 5 2010, 01:24) Однако.....   Feb 8 2010, 12:59
|- - _Pasha   Цитата(_Pasha @ Feb 8 2010, 16:59) Однако...   Feb 12 2010, 17:49
|- - ReAl   Цитата(_Pasha @ Feb 12 2010, 19:49) Еще п...   Mar 20 2010, 13:24
- - Genadi Zawidowski   ЦитатаCode: #include <avr/io.h> volatile ui...   Feb 8 2010, 06:04
|- - ReAl   Цитата(Genadi Zawidowski @ Feb 8 2010, 08...   Feb 8 2010, 10:48
- - _Pasha   Ау, я что, в палате №6? Не спим! Нашел серьезн...   Feb 17 2010, 06:59
|- - ReAl   Цитата(_Pasha @ Feb 17 2010, 08:59) Попыт...   Feb 17 2010, 19:53
|- - _Pasha   Цитата(ReAl @ Feb 17 2010, 22:53) Мне не ...   Feb 20 2010, 08:06
- - misyachniy   Друг спросил как разместить данные во флеш поопред...   Feb 17 2010, 15:39
|- - Сергей Борщ   Цитата(misyachniy @ Feb 17 2010, 17:39) Н...   Feb 17 2010, 17:50
|- - misyachniy   Цитата(Сергей Борщ @ Feb 17 2010, 19:50) ...   Feb 18 2010, 09:49
|- - Сергей Борщ   Цитата(misyachniy @ Feb 18 2010, 11:49) П...   Feb 18 2010, 11:32
|- - demiurg_spb   Забавный прикол:Кодuint16_t x; .... if ((x...   Feb 19 2010, 14:25
|- - _Pasha   Цитата(Сергей Борщ @ Feb 18 2010, 15:32) ...   Mar 16 2010, 18:05
|- - Сергей Борщ   Цитата(_Pasha @ Mar 16 2010, 20:05) т.к. ...   Mar 16 2010, 23:25
|- - _Pasha   Цитата(Сергей Борщ @ Mar 17 2010, 03:25) ...   Mar 17 2010, 05:39
- - SysRq   Цитата(_Pasha @ Feb 17 2010, 09:59) Нашел...   Feb 17 2010, 19:45
- - ZiB   аналогично, не удалось воссоздать ошибку. проверил...   Feb 18 2010, 06:48
- - ARV   а я вот не увидел в этой версии компилятора опции ...   Mar 25 2010, 08:45
|- - Сергей Борщ   Цитата(ARV @ Mar 25 2010, 10:45) или я ку...   Mar 25 2010, 08:56
- - ARV   во блин... странно... вчера вроде не получалось об...   Mar 25 2010, 09:17
- - Клим   Возможно уже такой вопрос был, сходу не нашел. WIN...   Aug 19 2010, 13:22
- - SysRq   Цитата(Клим @ Aug 19 2010, 17:22) Каким о...   Aug 19 2010, 13:46
|- - Клим   Цитата(SysRq @ Aug 19 2010, 16:46) Исполь...   Aug 19 2010, 14:40
|- - _Pasha   Цитата(Клим @ Aug 19 2010, 18:40) call ma...   Aug 20 2010, 15:53
- - _Pasha   Кто-нибудь может объяснить феномен. -Os CODE #inc...   Feb 8 2011, 07:48
|- - SysRq   Цитата(_Pasha @ Feb 8 2011, 10:48) Что же...   Feb 8 2011, 09:37
|- - _Pasha   Цитата(SysRq @ Feb 8 2011, 12:37) Глобаль...   Feb 8 2011, 10:55
||- - AHTOXA   Цитата(_Pasha @ Feb 8 2011, 15:55) Кого? ...   Feb 8 2011, 11:01
|- - demiurg_spb   Цитата(SysRq @ Feb 8 2011, 12:37) Глобаль...   Feb 8 2011, 11:13
|- - _Pasha   Цитата(demiurg_spb @ Feb 8 2011, 14:13) А...   Feb 8 2011, 11:19
|- - demiurg_spb   Да ладно! Он честно ругнулся - вы игнорировали...   Feb 8 2011, 11:41
||- - _Pasha   Цитата(demiurg_spb @ Feb 8 2011, 14:32) т...   Feb 8 2011, 11:41
||- - demiurg_spb   что сказать, переходите на версию посвежее ... пов...   Feb 8 2011, 11:48
||- - _Pasha   Цитата(demiurg_spb @ Feb 8 2011, 14:48) н...   Feb 8 2011, 11:50
||- - demiurg_spb   Цитата(_Pasha @ Feb 8 2011, 14:50) Это кл...   Feb 8 2011, 11:57
||- - demiurg_spb   Цитата(demiurg_spb @ Feb 8 2011, 14:57) ....   Feb 17 2011, 18:56
|- - AHTOXA   Цитата(_Pasha @ Feb 8 2011, 16:19) Вот...   Feb 8 2011, 12:05
- - ARV   как заставить компилятор помещать в elf-файл полны...   Mar 23 2011, 18:30
- - SysRq   Спасите мудрым советом, ибо не знаю куда копать ...   Mar 31 2011, 09:31
|- - Сергей Борщ   QUOTE (SysRq @ Mar 31 2011, 12:31) WinAVR...   Apr 1 2011, 09:03
- - SysRq   Цитата(Сергей Борщ @ Apr 1 2011, 13:03) ....   Apr 1 2011, 12:02
- - halfdoom   Попросил заказчик использовать gcc-4.5.1 (тот, что...   Aug 5 2012, 07:44
|- - _Pasha   Цитата(halfdoom @ Aug 5 2012, 10:44) Попр...   Aug 5 2012, 12:56
|- - Genadi Zawidowski   Цитата(halfdoom @ Aug 5 2012, 11:44) Попр...   Aug 5 2012, 13:57
- - halfdoom   В общем, нашел основной источник роста: излишне ...   Aug 5 2012, 15:11
|- - Genadi Zawidowski   Цитата(halfdoom @ Aug 5 2012, 19:11) В об...   Aug 7 2012, 23:03
|- - halfdoom   Цитата(Genadi Zawidowski @ Aug 8 2012, 02...   Aug 8 2012, 14:30
|- - demiurg_spb   Цитата(halfdoom @ Aug 8 2012, 18:30) Може...   Aug 9 2012, 05:10
|- - Genadi Zawidowski   Цитата(demiurg_spb @ Aug 9 2012, 09:10) ....   Aug 9 2012, 07:53
||- - demiurg_spb   думаю что где-то так Код#define flash const __flas...   Aug 9 2012, 08:28
||- - Genadi Zawidowski   Цитата(demiurg_spb @ Aug 9 2012, 12:28) C...   Aug 9 2012, 08:39
||- - demiurg_spb   Цитата(Genadi Zawidowski @ Aug 9 2012, 12...   Aug 9 2012, 08:45
|- - halfdoom   Цитата(demiurg_spb @ Aug 9 2012, 08:10) Н...   Aug 10 2012, 04:45
- - _Pasha   Цитата-mfaster-structs With -mfaster-structs, the ...   Aug 5 2012, 15:46
|- - halfdoom   Цитата(_Pasha @ Aug 5 2012, 18:46) Спецом...   Aug 5 2012, 16:26
|- - demiurg_spb   Цитата(halfdoom @ Aug 5 2012, 20:26) Уже ...   Aug 8 2012, 05:50
|- - ReAl   Цитата(demiurg_spb @ Aug 8 2012, 08:50) О...   Aug 8 2012, 07:35
|- - demiurg_spb   Ни чем не могу помочь... Разве только под win: htt...   Aug 8 2012, 07:50
- - _Pasha   Собсна из 8-битов одни АВРки SDCC чистой культуро...   Aug 5 2012, 16:32
- - ReAl   (сверните кто-нибудь строку в 78 сообщении, а то о...   Aug 9 2012, 06:23
- - Genadi Zawidowski   Использую вот отсюда http://electronix.ru/forum/in...   Aug 9 2012, 09:04
|- - demiurg_spb   Цитата(Genadi Zawidowski @ Aug 9 2012, 13...   Aug 9 2012, 09:18
|- - Genadi Zawidowski   Это что-то! На 32-х килобайтном проекте получи...   Aug 9 2012, 19:25
- - Genadi Zawidowski   Нашёл ещё одну сборку - уже с инсталлятором - htt...   Aug 10 2012, 07:20
- - demiurg_spb   Я её тоже находил, но и также находил инфу что с н...   Aug 10 2012, 07:24
2 страниц V   1 2 >


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

 


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


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