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

 
 
> IAR vs AVR GCC, Непрокомпилы
IXFN50N80Q2
сообщение Jul 21 2009, 21:54
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 12-05-09
Пользователь №: 48 987



Профессионально пишу уже 2 года на ASMе и Cшке(AVR GCC) для AVRок.
На GCC есть одна вещь которая бесит порой. Оптимизатор.
Работаю на уровне Os(высший, by size).
Оптимизирует нехреново. В железе работает, в отладчике на уровне переменных практически не протрассируеш. Только в дизасм смотри.
Так вот этот GCC иногда считает многие участки кода не нужными.

Допустим запускаю ацп конверсию с прерыванием, в прерывании ставлю какой то флаг,
и по флагу этому в цикле, я должен что то сделать. Ну да ладно подробности.
Факт в том что компилятор теряет логические связи, считает участок кода не нужным.
Выбрасывает его, ставит бесконечный цикл.
Бороться с ним конечно всячески можно(извращениями).

Вот хотел спросить, как по части непрокомпилов(непонимании компилятора) IAR ?
При максимальном уровне оптимизации.
Ну и скажите свои за и против IAR.
Просто думаю, стоит его осваивать взамен AVR GCC иль нет.

To Moderators, если в не тот раздел попал, просьба сильно не пинать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IXFN50N80Q2
сообщение Jul 21 2009, 23:29
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 12-05-09
Пользователь №: 48 987



Ладно. Не буду с вами "ругаться" и пытаться что доказывать что WinAVR не идеален.
Было бы все идеально и безошибочно предсказуемо, IAR бы помер.
HT-PIC например банки у меня путал (очень редко), пока сам не взял за правило прописывать где че будет лежать,
встречались проблемы. А где разместить переменную, как и Volatile, сложно отнести к самому СИ.
Это всего лишь приказ компилятору- ЭТО ТУДА, а не C.

Согласен. Грамотно применяй Volatile да будет счастье в этом мире.

Но Volatile не C, а для оптимизатора. То что любой оптимизатор будет резать че нить, что не понравится, согласен.
Мне интересно сравнение с IAR. Как он понимает сложные конструкции кода

И еще могу добавить. На PIC тоже на Cшке пишу. Там при работе оптимизатора, как не странно, не разу не обрезался код, по его субъективному мнению.
MPLAB C18 на мой взгляд вообще отличная вещь. Подвохов от вообще нет.

Сообщение отредактировал IXFN50N80Q2 - Jul 21 2009, 23:31
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 21 2009, 23:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(IXFN50N80Q2 @ Jul 22 2009, 03:21) *
Но Volatile не C, а для оптимизатора. То что любой оптимизатор будет резать че нить, что не понравится, согласен.
Мне интересно сравнение с IAR. Как он понимает сложные конструкции кода

Оптимизатор будет "резать" строго в соответствии со стандартом и только. Кто-то "режет" хуже, из-за чего могут "работать" и те
программы, которые по причине ошибочного построения работать не должны.
У IAR'а с пониманием все в порядке, не сомневайтесь.

Цитата(IXFN50N80Q2 @ Jul 22 2009, 03:29) *
И еще могу добавить. На PIC тоже на Cшке пишу. Там при работе оптимизатора, как не странно, не разу не обрезался код, по его субъективному мнению.

Как раз случай недоработки оптимизатора. Нет у компилятора "субъективного мнения", он не разумен.

Приведите пример, что у Вас WinAVR несправедливо режет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- IXFN50N80Q2   IAR vs AVR GCC   Jul 21 2009, 21:54
- - aaarrr   Цитата(IXFN50N80Q2 @ Jul 22 2009, 01:54) ...   Jul 21 2009, 22:01
- - IXFN50N80Q2   Volatile Знаю. Но искать скрытые подвохи по дизасм...   Jul 21 2009, 22:06
|- - aaarrr   Цитата(IXFN50N80Q2 @ Jul 22 2009, 02:06) ...   Jul 21 2009, 22:13
- - IXFN50N80Q2   Хм. Интересна ваша логика. Виноват программист. По...   Jul 21 2009, 23:06
|- - aaarrr   Цитата(IXFN50N80Q2 @ Jul 22 2009, 03:06) ...   Jul 21 2009, 23:12
|- - Qwertty   Цитата(IXFN50N80Q2 @ Jul 22 2009, 03:06) ...   Jul 21 2009, 23:20
|- - MrYuran   Цитата(IXFN50N80Q2 @ Jul 22 2009, 03:06) ...   Jul 22 2009, 04:34
|- - gotty    Цитата(IXFN50N80Q2 @ Jul 22 2009, 02:29)...   Jul 22 2009, 06:34
|- - tag   Цитата(IXFN50N80Q2 @ Jul 22 2009, 02:29) ...   Jul 22 2009, 12:26
|- - SasaVitebsk   Цитата(tag @ Jul 22 2009, 15:26) ...уверя...   Jul 22 2009, 15:24
- - IXFN50N80Q2   Безвыходных случаев с WINAVR не было. Всяческими с...   Jul 21 2009, 23:43
- - zltigo   Цитата(IXFN50N80Q2 @ Jul 22 2009, 00:54) ...   Jul 22 2009, 04:53
- - haker_fox   Нет ничего идеального. Все создается людьми. Друго...   Jul 22 2009, 07:44
- - rezident   Задача компилятора - перевести описание с языка, п...   Jul 22 2009, 15:06
- - aaarrr   Цитата(rezident @ Jul 22 2009, 19:06) Зад...   Jul 22 2009, 15:11
- - rezident   Цитата(aaarrr @ Jul 22 2009, 21:11) Форма...   Jul 22 2009, 15:40


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

 


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


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