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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Почему IAR оптимизирует код для регистров ?, IAR 5.51 для AVR + ATmega168PA
Zlumd
сообщение Aug 15 2011, 07:10
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057



У меня из-за этого Watchdog не конфигурируется.
Прикрепленное изображение

Настройки оптимизации по-максимуму:
Прикрепленное изображение

Это же не должно влиять. Ведь IAR же не должен оптимизировать работу с регистрами ввода-вывода. Они же объявлены как __io.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 15 2011, 07:28
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



А вы не ставьте максимальную оптимизацию, поставьте среднюю и будет вам щастье sm.gif
Go to the top of the page
 
+Quote Post
SSerge
сообщение Aug 15 2011, 07:31
Сообщение #3


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



А работу с регистрами ввода-вывода он и не оптимизирует, это срабатывает common subexpression elimination.
Можно её отключить галкой или для одного файла или сразу для всей программы или прагмами только локально, для этих двух строчек.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Aug 15 2011, 07:35
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



А из-за чего не конфигурится - не влезает в ограничение по циклам при записи?

Cross-call оптимизацию отключите, должно помочь...
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 15 2011, 10:31
Сообщение #5


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



похоже оптимизация по размеру включена!
обычно надо ставить по скорости, тогда код гораздо эффективнее работает.
к тому же оптимизацию с помощью прагмы можно менять по тексту.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 15 2011, 11:20
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Xenia @ Aug 15 2011, 09:28) *
А вы не ставьте максимальную оптимизацию, поставьте среднюю и будет вам щастье sm.gif

Вы меня очень огорчили своим "советом" sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Aug 15 2011, 11:31
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(zltigo @ Aug 15 2011, 15:20) *
Вы меня очень огорчили своим "советом" sad.gif.


А какие еще варианты?

По хорошему IAR должен сам отключать такую оптимизацию для регистров (объявлены с квалификатором __io), но он не настолько умный и не учитывает временные требования. Так что только руками...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 15 2011, 11:39
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Непомнящий Евгений @ Aug 15 2011, 13:31) *
А какие еще варианты?

KRS уже написал - управлять оптимизацией через pragma.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Aug 15 2011, 12:12
Сообщение #9


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



В avr-gcc инициализация wdt и всё его хозяйство вынесено в отдельный модуль wdt.h и всё сгруппировано по инлайн-асм вставкам.
Можете посмотреть подход тут...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 15 2011, 19:36
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



При всем этом IAR молча съедает выражения типа a==b;
Выкидывает его при компиляции,конечно,
но ни каких сообщений при этом не выдает.
Мог-бы и родить какой-нибудь варнинг типа "выражение бессмысленно."


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
arttab
сообщение Aug 16 2011, 01:09
Сообщение #11


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



IAR4. положил он на прагму #pragma optimize=none
пришлось уровень оптимизации уменьшать. потом нашел еще вариант, но это для моего случая, а не универсальный


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Aug 16 2011, 04:04
Сообщение #12


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(WHALE @ Aug 15 2011, 23:36) *
При всем этом IAR молча съедает выражения типа a==b;
Выкидывает его при компиляции,конечно,
но ни каких сообщений при этом не выдает.
Мог-бы и родить какой-нибудь варнинг типа "выражение бессмысленно."
Всё он правильно сделал.
Он понял, что переменные не volatile и не будут меняться непредсказуемо и что условие всегда истинно...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2011, 04:28
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(demiurg_spb @ Aug 16 2011, 08:04) *
Всё он правильно сделал.
Он понял, что переменные не volatile и не будут меняться непредсказуемо и что условие всегда истинно...

Сделал он правильно,но почему молча?Другие компиляторы в такой ситуации варнинг выбрасывают.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Aug 16 2011, 04:29
Сообщение #14


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(WHALE @ Aug 16 2011, 08:28) *
но почему молча?Другие компиляторы в такой ситуации варнинг выбрасывают.
Это стандартом не оговаривается...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 16 2011, 08:44
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (WHALE @ Aug 15 2011, 21:36) *
При всем этом IAR молча съедает выражения типа a==b;

Разумеется НЕТ. Просто Вы зачем-то этот или вообще все warnings отключили расставляя галочки sad.gif.


QUOTE (arttab @ Aug 16 2011, 03:09) *
IAR4. положил он на прагму #pragma optimize=none

Совершенно не верю. Игнорируется только установки более высоких уровней оптимизации, нежели в командной строке. А вообще-то было нужно просто чисто конкретно:
#pragma optimize=тo_cse


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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