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

 
 
> 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
 
Start new topic
Ответов
viakon
сообщение Jun 30 2008, 03:59
Сообщение #2


Местный
***

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



Цитата(kurtis @ Jun 28 2008, 23:50) *
Заметил что компилятор все символьные строки запихнул в ОЗУ

У меня все нормально, лежат во флеш.

Подпрограмма вызываемая 1 раз подставлена инлайн соответственно получилось 2 копии. Из-за этого и длина больше. попробую ключик
--param inline-call-cost
Go to the top of the page
 
+Quote Post
aesok
сообщение Jun 30 2008, 09:21
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 30 2008, 09:32
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
aesok
сообщение Jun 30 2008, 09:35
Сообщение #5


Знающий
****

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



про --gc-sections где-то читал что могут быть проблеммы с отладкой. вечером поищю где про это написано.

Анатолий.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 30 2008, 10:06
Сообщение #6


Гуру
******

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



Цитата(aesok @ Jun 30 2008, 12:35) *
про --gc-sections где-то читал что могут быть проблеммы с отладкой. вечером поищю где про это написано.
В некоторых версиях он выдавал warning "могут быть проблемы с отладкой на некоторых targets". Пока на такие проблемы не натыкался (внутрисхемной отладкой не пользуюсь), а уточнений - на каких именно targets и какие именно проблемы могут быть - не попадалось.


--------------------
На любой вопрос даю любой ответ
"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
777777
сообщение Jul 18 2008, 07:02
Сообщение #7


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

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



Поставил сабж. Размер обоих проектов увеличился ровно на 32 байта каждый. Работоспособность не изменилась. Глупые строки вида
lds r24, 0x013A
lds r25, 0x013B
mov r18, r24
mov r19, r25
- остались. В чем отличие и кому нужны 32 байта - так и не понял.
Go to the top of the page
 
+Quote Post
aesok
сообщение Jul 18 2008, 10:53
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 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...)

Анатолий.
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 18 2008, 11:56
Сообщение #9


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

Группа: Участник
Сообщений: 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 весьма неудачно сделана, все разбросано по каким-то закоулкам.
Go to the top of the page
 
+Quote Post
aesok
сообщение Jul 20 2008, 20:21
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:13
Рейтинг@Mail.ru


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