|
WinAVR обновился до 20081118rc2, Похоже, скоро релиз появится! |
|
|
|
Nov 20 2008, 12:22
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 13-05-05
Пользователь №: 4 977

|
Release Candidate 20081118rc2File Release Notes and Changelog Release Name: 20081118rc2 Notes: Below is just a sample of what's new. - New version of GNU Binutils: 2.19 - New version of GCC: 4.3.2 - New version of AVR-LibC: 1.6.4 - New version of Programmers Notepad: 2.0.8.718 - New devices supported: * ATxmega64A3 * ATxmega128A3 * ATxmega256A3 * ATxmega256A3B * ATmega32U6 - Various bugs fixed.
|
|
|
|
|
 |
Ответов
|
Nov 21 2008, 15:50
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Rst7 @ Nov 21 2008, 18:29)  Например? А вот эту тему посмотрите: тута. Вы же тогда сами мне подсказывали ЗЫ: видимо AVR Studio с интегрированным WinAVR никак не заставить компилировать C++. Среда отказывается компилировать файлы с расширением, отличным от .с... Через внешний makefile это возможно, но что-то не особо прельщает искать ошибки по номерам строчек в файлах, так как клик по сообщению не работает... Млин, каменный век какой-то... Может, когда времени больше будет
|
|
|
|
|
Nov 21 2008, 20:02
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Сергей Борщ @ Nov 21 2008, 22:11)  Очень странно. У меня работало. Просто в настройках проекта указать Custom (или External?) Makefile и все. Парсер вывода ведь никуда не денется. А еще можно отказаться от студии и работать в Эклипсе, а студию изредка использовать как симулятор, загружая в нее .elf. Эклипс? Не юзал пока. А СликЭдит не подойдёт? Скомпильнул небольшой код, и мне оптимизация ГНУ показалась интересной. Есть некоторые моменты, которые ИАР (5.10) даже не пытался затронуть, в отличие от, так сказать. Правда, очень уж любит ГНУ разворачивать подпрограммы, размерчик в итоге, думаю, получится посолидней... Тестил ГНУ на О3 и на Оs, а ИАР на макс. по скорости... ЗЫ: вот напоследок перл от ИАРА: Дано: Код #define RPM_MIN 0 #define RPM_MED 1 #define RPM_MAX 2
typedef unsigned char byte;
struct frDatatable { byte min_speed; byte med_speed; byte max_speed; byte min_temp; byte max_temp; } data;
byte RPMval[3]; byte minTEMPval; byte maxTEMPval;
void CFanRegulator::SetData(frDatatable *data) { RPMval[RPM_MIN] = data->min_speed; RPMval[RPM_MED] = data->med_speed; RPMval[RPM_MAX] = data->max_speed; minTEMPval = data->min_temp; maxTEMPval = data->max_temp; } Вроде проще некуда. В итоге имеем: Код void CFanRegulator::SetData(frDatatable *data) \ ??SetData: 15 { 16 RPMval[RPM_MIN] = data->min_speed; \ 00000000 01F9 MOVW R31:R30, R19:R18 \ 00000002 8140 LD R20, Z \ 00000004 01F8 MOVW R31:R30, R17:R16 \ 00000006 8345 STD Z+5, R20 17 RPMval[RPM_MED] = data->med_speed; \ 00000008 01F9 MOVW R31:R30, R19:R18 \ 0000000A 8141 LDD R20, Z+1 \ 0000000C 01F8 MOVW R31:R30, R17:R16 \ 0000000E 8346 STD Z+6, R20 18 RPMval[RPM_MAX] = data->max_speed; \ 00000010 01F9 MOVW R31:R30, R19:R18 \ 00000012 8142 LDD R20, Z+2 \ 00000014 01F8 MOVW R31:R30, R17:R16 \ 00000016 8347 STD Z+7, R20 19 minTEMPval = data->min_temp; \ 00000018 01F9 MOVW R31:R30, R19:R18 \ 0000001A 8143 LDD R20, Z+3 \ 0000001C 01F8 MOVW R31:R30, R17:R16 \ 0000001E 8740 STD Z+8, R20 20 maxTEMPval = data->max_temp; \ 00000020 01F9 MOVW R31:R30, R19:R18 \ 00000022 8124 LDD R18, Z+4 \ 00000024 01F8 MOVW R31:R30, R17:R16 \ 00000026 8721 STD Z+9, R18 21 } \ 00000028 9508 RET Просто аццкая куча кода Раз указатель грузится каждый раз заново - зачем он здесь вообще нужен? К чему так заморачиваться - надо было авторам LDS использовать - эффект тот-же И такое встречается частенько. Вроде хороший компилер, но работа с указателями похабная. Из трёх регистровых пар практически используется только одна. А вот ГНУ такой фигнёй, похоже, не страдает
|
|
|
|
|
Nov 22 2008, 02:01
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Сергей Борщ @ Nov 22 2008, 02:29)  Пойдет. Лично не пользовал, но уважаемые форумчане хвалят.Дык... O3 - это для больших машин с кучей памяти. Инлайн и разворот циклов где только можно в погоне за скоростью. Для AVR оптимальным является Os. Кроме того там есть еще куча ключей для тонкой настройки. Ваш код действительно дал какой-то неадекватный результат. Для ИАРа оптимизация по скорости очень часто дает меньший код, чем оптимизация по размеру (парадокс!). Попробуйте включить кластеризацию переменных, и вообще все галочки, которые доступны в дополнительных параметрах оптимизации. Пробовал - не помогает. Исправляюсь - кроме О3 тестил ещё и на Os. Да, последний режим давал более приемлимые результаты Цитата(IgorKossak @ Nov 22 2008, 02:50)  Поставьте перед функцией __z, а ещё лучше __x (передавать указатель через регистровую пару весьма разумно) или оптимизацию установите по объёму и будет Вам счастье. Не всё так просто. Не спасает ничего, кроме установки перед функцией ключа __x_z. Но почему я должен каждую микроскопическую функцию проверять и персонально настраивать под оптимальную генерацию руками? На это нужна куча времени!
|
|
|
|
Сообщений в этой теме
Alex_NEMO WinAVR обновился до 20081118rc2 Nov 20 2008, 12:22 sonycman Что то потянуло попробовать этот компилятор.
Хочу ... Nov 21 2008, 09:02 Непомнящий Евгений Цитата(sonycman @ Nov 21 2008, 12:02) А в... Nov 21 2008, 09:12 _Pasha Цитата(sonycman @ Nov 21 2008, 13:02) uns... Nov 21 2008, 09:45 Сергей Борщ Цитата(sonycman @ Nov 21 2008, 11:02) Уст... Nov 21 2008, 10:47 demiurg_spb Цитата(sonycman @ Nov 21 2008, 12:02) Уст... Nov 21 2008, 11:02  sonycman Цитата(Непомнящий Евгений @ Nov 21 2008, 13... Nov 21 2008, 13:52    Сергей Борщ Цитата(sonycman @ Nov 21 2008, 22:02) Экл... Nov 21 2008, 22:29      Rst7 Цитата(sonycman @ Nov 22 2008, 04:01) Но ... Nov 22 2008, 21:32       AHTOXA Цитата(Rst7 @ Nov 23 2008, 02:32) Еще хуж... Nov 22 2008, 21:39        Rst7 Цитата(AHTOXA @ Nov 22 2008, 23:39) WinAV... Nov 22 2008, 21:51   manul78 Цитата(Сергей Борщ @ Nov 21 2008, 21:11) ... Nov 21 2008, 22:30 ukpyr ЦитатаА вот ГНУ такой фигнёй, похоже, не страдает
... Nov 21 2008, 20:49 NetTracer Цитата(Alex_NEMO @ Nov 20 2008, 15:22) ..... Nov 23 2008, 08:22 Alex_NEMO Цитата(NetTracer @ Nov 23 2008, 11:22) Во... Nov 23 2008, 10:07 sonycman Портировал я свою программу с IARа на GCC.
Оптимиз... Nov 24 2008, 15:23 singlskv Цитата(sonycman @ Nov 24 2008, 18:23) жал... Nov 24 2008, 23:49  sonycman Цитата(singlskv @ Nov 25 2008, 03:49) Увы... Nov 25 2008, 09:51   Непомнящий Евгений Цитата(sonycman @ Nov 25 2008, 12:51) Ска... Nov 25 2008, 10:12    sonycman Цитата(Непомнящий Евгений @ Nov 25 2008, 14... Nov 25 2008, 10:38     demiurg_spb Цитата(sonycman @ Nov 25 2008, 13:38) Мож... Nov 25 2008, 10:51      Сергей Борщ Цитата(demiurg_spb @ Nov 25 2008, 12:51) ... Nov 25 2008, 15:40       Rst7 Цитата(Сергей Борщ @ Nov 25 2008, 17:40) ... Nov 25 2008, 16:04       Непомнящий Евгений Цитата(Сергей Борщ @ Nov 25 2008, 18:40) ... Nov 26 2008, 06:43      sonycman Цитата(demiurg_spb @ Nov 25 2008, 14:51) ... Nov 25 2008, 17:27       demiurg_spb Цитата(sonycman @ Nov 25 2008, 20:27) Это... Nov 25 2008, 20:30       defunct Цитата(sonycman @ Nov 25 2008, 19:27) Ест... Dec 11 2008, 01:50   singlskv Цитата(sonycman @ Nov 25 2008, 12:51) Да,... Nov 25 2008, 11:15 ukpyr хм, а если писать по заранее неизвестному адресу (... Nov 24 2008, 15:42 sonycman Цитата(ukpyr @ Nov 24 2008, 19:42) хм, а ... Nov 24 2008, 16:19  IgorKossak Цитата(sonycman @ Nov 24 2008, 19:19) Хм,... Nov 24 2008, 16:59   sonycman Цитата(IgorKossak @ Nov 24 2008, 20:59) Б... Nov 24 2008, 19:57    IgorKossak Цитата(sonycman @ Nov 24 2008, 21:57) Раз... Nov 24 2008, 20:34    _Pasha Цитата(sonycman @ Nov 24 2008, 23:57) Раз... Nov 24 2008, 21:56     sonycman Цитата(_Pasha @ Nov 25 2008, 01:56) Вот т... Nov 24 2008, 23:45 Serjio Зарелизили http://sourceforge.net/projects/winavr/ Dec 10 2008, 17:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|