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

 
 
 
Reply to this topicStart new topic
> Оптимизация в IAR 4.10b, при какой не будет косяков
LeoLabs
сообщение May 5 2005, 09:28
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 5-03-05
Пользователь №: 3 082



Вопрос - оптимальная степень оптимизации. Заметил косячок на максимальной оптимизации. Какую лучше ставить, чтобы не проверять каждый раз правильно ли откомпилированно?
Go to the top of the page
 
+Quote Post
nameless
сообщение May 5 2005, 09:52
Сообщение #2


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

Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305



Есть такая традиция - отключать оптимизацию при отладке [DEBUG mode]: багов по определению нет т.к. идет тупая сборка (компиляция) из готовых и неоптимизированных кусков.
После того, как разработчик отработал алгоритм в функционально законченном виде - приступаем к оптимизации [RELISE mode]. Мой практикум в программировании под ИАРом показывает, что косяки выявляются в таких кусках кода, которые не красиво написаны в сЁвом синтаксисе. Например, в какой-то ранней версии (не помню) функция не возвращала сложную составную переменную, получаемую в строке с return-ом, в более поздней - работает !!!
Пусть специалисты меня поправят...
Go to the top of the page
 
+Quote Post
dxp
сообщение May 5 2005, 11:11
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(LeoLabs @ May 5 2005, 15:28)
Вопрос - оптимальная степень оптимизации. Заметил косячок на максимальной оптимизации. Какую лучше ставить, чтобы не проверять каждый раз правильно ли откомпилированно?
*

Максимальная. По скорости или по размеру - зависит от проекта.
А глюки - они везде есть. И не факт, что на меньших уровнях их не будет - бывали ситуации, когда на высшем уровне оптимизации все было хорошо, а при меньшем - лажалось.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
SL@V@
сообщение May 5 2005, 19:49
Сообщение #4





Группа: Новичок
Сообщений: 7
Регистрация: 30-03-05
Пользователь №: 3 806



Всегда использую только максимальную оптимизацию (в том числе и в дебаге - на последних стадиях отладки). Единственный "глюк" возникал только с участками кода где в условии цикла используется значение переменной не изменяемой в пределах текущего цикла (но её значение может меняться в прерывании). Просто забывал добавить в определении переменной модификатор volatile.
Go to the top of the page
 
+Quote Post
nml
сообщение May 6 2005, 12:43
Сообщение #5


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

Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29



Вот какая штука замечена в 3.20С:
Объявляю в регистре кучу флагов, например:
Код
volatile __regvar __no_init struct
               {
 unsigned char gluk1:1;    // не исп из-за глюка компилера
 unsigned char sending:1;  //
 unsigned char priem:1;    //
 unsigned char setpnt:1;   //
 unsigned char sohran:1;   //
 unsigned char newotscet:1;    //
 unsigned char smena_rezima:1; //
 unsigned char flagt0:1;       //
     } @ 15;

так вот при оптимизации выше средней запись 1 в мл бит - нормально, а очистка мл бита - генерится CLR R15. Все остальные биты - нормально...
Go to the top of the page
 
+Quote Post
KRS
сообщение May 10 2005, 11:09
Сообщение #6


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

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



Цитата(nml @ May 6 2005, 15:43)
Вот какая штука замечена в 3.20С:
Объявляю в регистре кучу флагов, например:
Код
volatile __regvar __no_init struct
               {
 unsigned char gluk1:1;    // не исп из-за глюка компилера
 unsigned char sending:1;  //
 unsigned char priem:1;    //
 unsigned char setpnt:1;   //
 unsigned char sohran:1;   //
 unsigned char newotscet:1;    //
 unsigned char smena_rezima:1; //
 unsigned char flagt0:1;       //
     } @ 15;

так вот при оптимизации выше средней запись 1 в мл бит - нормально, а очистка мл бита - генерится CLR R15. Все остальные биты - нормально...
*

В 3.20D этот глюк исправили
Go to the top of the page
 
+Quote Post
nml
сообщение May 12 2005, 18:23
Сообщение #7


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

Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29



Цитата(KRS @ May 10 2005, 14:09)
В 3.20D этот глюк исправили
*


Да, слышал, но качать 50 мег, кряк искать... Влом... Когда глюк известен - он не страшен :-)
К тому же есть хороший принцип - работает - не трогай!
Go to the top of the page
 
+Quote Post

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

 


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


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