|
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 30 2008, 03:59
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(kurtis @ Jun 28 2008, 23:50)  Заметил что компилятор все символьные строки запихнул в ОЗУ У меня все нормально, лежат во флеш. Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик --param inline-call-cost
|
|
|
|
|
Jun 30 2008, 09:21
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(viakon @ Jun 30 2008, 07:59)  Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик --param inline-call-cost Лучше объявите эту функцию как static. Анатолий.
Сообщение отредактировал aesok - Jun 30 2008, 09:21
|
|
|
|
|
Jun 30 2008, 09:32
|

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

|
Цитата(aesok @ Jun 30 2008, 12:21)  Лучше объявите эту функцию как static. или --ffunction-sections, -Wl,--gc-sections. Ведь часто исходник кочует из проекта в проект, в каком-то используются одни функции, в каком-то другие, или написали функцию, попользовали ее в другом файле, потом в процессе эволюции необходимость в функции пропала. Если линкер может выкинуть неиспользуемый код - пусть он это делает.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 18 2008, 10:53
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(777777 @ Jul 18 2008, 11:02)  Глупые строки вида lds r24, 0x013A lds r25, 0x013B mov r18, r24 mov r19, r25 - остались. Исходники компилятора находятся здесь: http://gcc.gnu.org/. Сделать компилятор менее глупым в ваших силах. Цитата(777777 @ Jul 18 2008, 11:02)  В чем отличие и кому нужны 32 байта - так и не понял. На этом форуме было несколько рекомендаций как заставить avr-gcc 4.3 гененрировать более компактный код, поищите. (--param inline-call-cost, атрибут OS_main...) Анатолий.
|
|
|
|
|
Jul 18 2008, 11:56
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(aesok @ Jul 18 2008, 14:53)  Исходники компилятора находятся здесь: http://gcc.gnu.org/. Сделать компилятор менее глупым в ваших силах. А поточнее можно ссылочку? Может и правда стоит попробовать... Когда-то давно с энтузиазмом дорабатывал компилятор Small-C для процессора 8080, он у меня стал полностью соответствовать стандарту, не понимал только элипсисы (...) Там даже оптимизатор был неслабый. Прада, он был pure-C... Цитата(aesok @ Jul 18 2008, 14:53)  На этом форуме было несколько рекомендаций как заставить avr-gcc 4.3 гененрировать более компактный код, поищите. (--param inline-call-cost, атрибут OS_main...) param inline-call-cost есть, а OS_main - это что? Надо сказать, документация у WinAVR весьма неудачно сделана, все разбросано по каким-то закоулкам.
|
|
|
|
|
Jul 20 2008, 20:21
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(777777 @ Jul 18 2008, 15:56)  а OS_main - это что? Цитата Код This patch add "OS_main" and 'OS_task' attributes in GCC .... Function with "OS_main" and 'OS_task' attributes do not save any "call-saved" registers.
1. "OS_main" attribute used when there IS guarantee that interrupts are disabled at that time when function is called. For example "main" function in avr-libc. If this function has local variables that a prologue will look so: in r28, 0x3d; 61 in r29, 0x3e; 62 sbiw r28, 0x08; 8 out 0x3e, r29; 62 out 0x3d, r28; 61
No save/clear/restore "I" flag.
2. "OS_task" attribute used when there is NO guarantee that interrupts are disabled at that time when function is called. For example task functions multi-threading operating systems. In this case save/clear/restore "I" flag is need for changing SP register. Prologue (if this function has local variables) will look so:
in r28, 0x3d; 61 in r29, 0x3e; 62 sbiw r28, 0x08; 8 in r0, 0x3f; 63 cli out 0x3e, r29; 62 out 0x3f, r0; 63 out 0x3d, r28; 61
|
|
|
|
Сообщений в этой теме
haker_fox WinAVR-20080610 Jun 24 2008, 03:57 733259 По сравнению с 3.4.6 по прежнему проигрывает.
ЗЫ ... Jun 24 2008, 07:56 haker_fox Цитата(733259 @ Jun 24 2008, 16:56) По ср... Jun 25 2008, 01:40 kurtis Цитата(haker_fox @ Jun 24 2008, 06:57) ..... Jun 24 2008, 08:48 viakon Цитата(haker_fox @ Jun 24 2008, 08:57) По... Jun 25 2008, 03:53 haker_fox Цитата(viakon @ Jun 25 2008, 12:53) Разоб... Jun 25 2008, 04:33 733259 ИМХО это уже не раз обсуждалось, в четверке новые ... Jun 25 2008, 04:33 haker_fox Цитата(733259 @ Jun 25 2008, 13:33) ИМХО ... Jun 25 2008, 04:54 haker_fox Цитата(733259 @ Jun 25 2008, 13:33) ИМХО ... Jun 25 2008, 05:30 733259 Эти 20070525, 20071221 никакой инфы о компилере не... Jun 25 2008, 05:10 viakon А пользую только С никаких С++, так что дело вряд ... Jun 25 2008, 05:29  aesok Цитата(viakon @ Jun 25 2008, 09:29) А пол... Jun 25 2008, 05:41 haker_fox Код>c:\winAVR-20070525\bin... Jun 25 2008, 05:28 viakon интересно, и уменя проблемы c UART были. Работал c... Jun 25 2008, 05:43 aesok Цитата(viakon @ Jun 25 2008, 09:43) Читал... Jun 25 2008, 05:45 haker_fox Цитата(viakon @ Jun 25 2008, 14:43) интер... Jun 25 2008, 05:50 viakon попробую выгрызть, но не на этой неделе точно. Jun 25 2008, 05:48 733259 ЦитатаПрошу пролщения, а о какой четверке идет реч... Jun 25 2008, 06:00 kurtis Попробовал скомпилировать проект в сабжевой версии... Jun 25 2008, 11:05 haker_fox Видимо все-таки сыроват этот новый WinAVR...
У мен... Jun 26 2008, 09:01 viakon Новый проект откомпилил на SUBJ работает. Только о... Jun 27 2008, 08:29 solosh Цитата(viakon @ Jun 27 2008, 11:29) Новый... Jun 27 2008, 08:43 haker_fox Цитата(viakon @ Jun 27 2008, 17:29) Новый... Jun 28 2008, 00:13 kurtis Заметил что компилятор все символьные строки запих... Jun 28 2008, 18:50 aesok Цитата(kurtis @ Jun 28 2008, 22:50) Замет... Jun 28 2008, 18:55  kurtis Цитата(aesok @ Jun 28 2008, 21:55) Тестов... Jul 1 2008, 08:13   aesok Цитата(kurtis @ Jul 1 2008, 12:13) Есть с... Jul 1 2008, 08:53    kurtis Цитата(aesok @ Jul 1 2008, 11:53)
Прости... Jul 1 2008, 09:42     _Pasha Цитата(kurtis @ Jul 1 2008, 12:42) строку... Jul 1 2008, 12:23 Hmm Когда-то, некоторое время, вел проекты параллельно... Jun 29 2008, 19:29        MrYuran Цитата(777777 @ Jul 18 2008, 14:56) Надо ... Jul 18 2008, 12:03         kaf Цитата(MrYuran @ Jul 18 2008, 18:03) А мн... Jul 18 2008, 12:27 Chak Здравствуйте уважаемые форумчане!
У меня проб... Jun 30 2008, 18:03 aesok Цитата(Chak @ Jun 30 2008, 22:03) Help... Jun 30 2008, 18:43 Chak К Анатолию
Спасибо за информацию о скором выходе ... Jul 1 2008, 06:44 kurtis Но если пойти по приведенной aesok ссылке, то там ... Jul 1 2008, 12:59 mdmitry Цитата(kurtis @ Jul 1 2008, 16:59) Но есл... Jul 1 2008, 13:15 kurtis Заменил все prog_char на char имя_строки[] PROGMEM... Jul 1 2008, 15:48 aesok Цитата(kurtis @ Jul 1 2008, 19:48) почему... Jul 1 2008, 17:07  haker_fox Цитата(aesok @ Jul 2 2008, 02:07) Во втор... Jul 4 2008, 02:59 kurtis Анатолий, спасибо за ответы, очень помогло!... Jul 3 2008, 10:39 MrYuran Ну уж не знаю, что тогда считать документацией... ... Jul 18 2008, 12:54 Антон Малыгин У меня вот такой вопрос. поставил тут сегодня AVR ... Jul 30 2008, 10:31 mdmitry Мало информации: как создаете проект, какими средс... Jul 30 2008, 13:26 MrYuran Цитата(mdmitry @ Jul 30 2008, 17:26) Снач... Jul 30 2008, 13:32 Антон Малыгин Самое интересное что дома попробывал сейчас немног... Jul 30 2008, 18:16 haker_fox Цитата(Антон Малыгин @ Jul 31 2008, 03:16... Jul 31 2008, 03:48 kaf Цитата(haker_fox @ Jul 31 2008, 09:48) На... Jul 31 2008, 07:22 _Pasha Цитата(Антон Малыгин @ Jul 30 2008, 21:16... Jul 31 2008, 07:41 mdmitry 2 MrYuran и haker_fox
как я понимаю, студия именно... Jul 31 2008, 11:26 LEAS Сам я пользуюсь WinAVR+AVRStudio+иногда Proteus. Н... Jul 31 2008, 14:09 haker_fox Цитата(mdmitry @ Jul 31 2008, 20:26) 2 Mr... Aug 1 2008, 03:13  namelos Доброе время суток, уважаемые.
Возникла проблема п... Aug 18 2008, 13:44 kurtis Попробуйте так
Кодtypedef struct
{
//const char*... Aug 18 2008, 14:27 namelos kurtis, спасибо большое , помогло. Aug 18 2008, 14:36 Tracer Вот нарвался на странность
Прописываю свой тип дан... Sep 11 2008, 19:04 aesok Цитата(Tracer @ Sep 11 2008, 23:04) Вот н... Sep 11 2008, 19:35  Tracer Цитата(aesok @ Sep 11 2008, 22:35) Привед... Sep 11 2008, 19:58   Сергей Борщ Цитата(Tracer @ Sep 11 2008, 22:58) Компи... Sep 11 2008, 20:50    Tracer Цитата(Сергей Борщ @ Sep 11 2008, 23:50) ... Sep 11 2008, 21:12     Непомнящий Евгений Цитата(Tracer @ Sep 12 2008, 01:12) 2. По... Sep 12 2008, 04:13      Tracer Цитата(Непомнящий Евгений @ Sep 12 2008, 07... Sep 12 2008, 19:01       aesok Цитата(Tracer @ Sep 12 2008, 23:01) Я с т... Sep 12 2008, 19:08        Tracer Цитата(aesok @ Sep 12 2008, 22:08) avr-li... Sep 12 2008, 19:27 timex Добрый день!
У меня WinAVR 20080512 + AVR Stu... Sep 25 2008, 10:44 Непомнящий Евгений ну напишите руками приведение к тому типу, который... Sep 25 2008, 10:56 timex Цитата(Непомнящий Евгений @ Sep 25 2008, 14... Sep 25 2008, 11:25 mdmitry Достаточно распространенная ситуация, когда конста... Sep 25 2008, 11:45 timex mdmitry, да, спасиб.
при такой записи строки
Кодe... Sep 25 2008, 12:16 _Pasha Цитата(timex @ Sep 25 2008, 16:16)
1. по... Sep 25 2008, 13:23  mdmitry Цитата(_Pasha @ Sep 25 2008, 17:23) 1. по... Sep 25 2008, 13:31  timex Цитата(_Pasha @ Sep 25 2008, 17:23) 1. по... Sep 25 2008, 13:44   Сергей Борщ Цитата(timex @ Sep 25 2008, 16:44) Перепр... Sep 25 2008, 14:19    mdmitry Цитата(Сергей Борщ @ Sep 25 2008, 18:19) ... Sep 25 2008, 15:02     Сергей Борщ Цитата(mdmitry @ Sep 25 2008, 18:02) в фу... Sep 25 2008, 18:17      mdmitry Цитата(Сергей Борщ @ Sep 25 2008, 22:17) ... Sep 25 2008, 19:46       vik0 Цитата(mdmitry @ Sep 25 2008, 22:46) Наск... Sep 25 2008, 20:13        mdmitry Цитата(vik0 @ Sep 26 2008, 00:13) Нет. С ... Sep 25 2008, 20:36 _Pasha Хочу спросить:
почему в хедерах контроллеров не п... Sep 30 2008, 07:06 aesok Цитата(_Pasha @ Sep 30 2008, 11:06) Хочу ... Sep 30 2008, 18:24  demiurg_spb К слову, из рассылки ImageCraft от 26 сентября 200... Oct 1 2008, 07:40   Tracer Цитата(demiurg_spb @ Oct 1 2008, 10:40) К... Oct 3 2008, 20:13
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|