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

 
 
> Почему 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
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
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
IgorKossak
сообщение Aug 16 2011, 08:46
Сообщение #16


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(zltigo @ Aug 16 2011, 11:44) *
Разумеется НЕТ. Просто Вы зачем-то этот или вообще все warnings отключили расставляя галочки sad.gif.

Там ещё и ремарки есть. Тоже, небось, отключены.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2011, 09:31
Сообщение #17


Знающий
****

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



Цитата(IgorKossak @ Aug 16 2011, 12:46) *
Там ещё и ремарки есть. Тоже, небось, отключены.


Точно!Ремарки, были отключены.Включил,и сразу появилось
Warning[Pe174]: expression has no effect .
Спасибо!
Но одновременно появилось еще 6 crying.gif
Remark[Pe001]: last line of file ends without a newline на последнюю строчку в
всех моих хидерах. Смысла этой ремарки я не понял.. help.gif




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


Гуру
******

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



Цитата(WHALE @ Aug 16 2011, 13:31) *
Но одновременно появилось еще 6 crying.gif
Remark[Pe001]: last line of file ends without a newline на последнюю строчку в
всех моих хидерах. Смысла этой ремарки я не понял.. help.gif

А это потому, что у вас стиль такой - после последней строки возврат каретки (Enter) не ставить. В околокомпьютерных делах предполагается, что возврат каретки (он же "новая строка" или Enter) символизирует конец строки, независимо от вашего намерения вводить следующую. Т.е. Enter рассматривается не как разделитель строк, а как терминатор строки. По той же причине компьютер не выполнит введенную команду до тех пор, пока вы не нажмете Enter.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2011, 10:44
Сообщение #19


Знающий
****

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



Вставил везде в конце Enter.Появилось 30 ремарок на
все мой файлы проекта last line of file ends without a newline.
Че за хрень?


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


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(WHALE @ Aug 16 2011, 14:44) *
Вставил везде в конце Enter.Появилось 30 ремарок на
все мой файлы проекта last line of file ends without a newline.
Че за хрень?

Именно то, что написано: последняя строка в файле не содержит перевод строки. Это чревато проблемами, если такие файлы включать через #include, поэтому компилятор и предупреждает.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 16 2011, 11:58
Сообщение #21


Гуру
******

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



QUOTE (WHALE @ Aug 16 2011, 12:44) *
Че за хрень?

Таже, что раньше. Это сообщение выдается один раз. Посему выдавалось на включаемые файлы. Там убрали - вылезло на тех, куда включали.
Вообще-то вменяемые программерские редакторы файлы без пустой строки не создают, без отдельного на то приказа. Что за редактор-то?
Возможно наткнетесь еще на ругань на UNIX формат без CR. Это тогда давить в понкретных файлах прагмами.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
WHALE
сообщение Aug 16 2011, 13:28
Сообщение #22


Знающий
****

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



редактор родной яровский.и как лечить?открывать и сохранять все файлы в другом редакторе?

Все,вопрос снимается.Как всегда,сам дурак.Не поставил enter в хидере зависимостей.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post

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

 


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


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