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

 
 
> IAR C, Кого глючит
volod_ua
сообщение Oct 7 2005, 21:03
Сообщение #1


Участник
*

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



Вот такой код у меня

for(i=0;i<128;i++)
{
roll_bits(bytes);
if((bytes[0] == 0xFF) &&(bytes[1] == 0x80))
{
flag=1;
break;
}
};
а что компилируєт ИАР

for(i=0;i<128;i++)
{
roll_bits(bytes);
};

почему оптимизация отключена....что не так
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
haker_fox
сообщение Oct 8 2005, 02:25
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Please, вышлите больше инфы (что такое roll_bits(), как определен bytes, возможно еще что-то). Мой скромный опыт не позволяет Вам ответить на вопрос, хотя очень интересно.
Кстати, а где Вы увидели, что компилирует IAR?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Olxx
сообщение Oct 8 2005, 03:14
Сообщение #3


Участник
*

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



По какой-то причине IAR считает, что условие (bytes[0] == 0xFF) &&(bytes[1] == 0x80) невыполнимо (это может происходить по разным причинам, надо больше исходной информации).
Самый простой совет - попробуйте обьявит массив bytes как "volatile". В этом случае компилятор перестанет оптимизировать все что связано с "bytes".
Go to the top of the page
 
+Quote Post
Pat
сообщение Oct 8 2005, 04:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Цитата(volod_ua @ Oct 8 2005, 00:03)
почему оптимизация отключена....что не так
*

Что значит оптимизация отключена, IAR может выкинуть кусок кода наоборот, когда включена оптимизация.
Если у вас стоит максимальный уровень оптимизауции, то попробуйте ее снизить.
Как тут советуют попробуйте объявить переменную как volatile.

У меня IAR3.20 такй ерундой страдал при сравнении ставил команду cmp
а вот переход после нее делать забывал.
smile.gif Я когда первый раз собрал на нем свой проект, скомпилил смотрю во класс, он мне код ужал процентов на 20 от исходного. Вот только ничего не работало. smile.gif
Go to the top of the page
 
+Quote Post
vzyk
сообщение Oct 8 2005, 13:06
Сообщение #5


Участник
*

Группа: Validating
Сообщений: 18
Регистрация: 3-09-05
Пользователь №: 8 208



Возможно что bytes[] масив обозначенн как константа? Просто пиши "violatile" или "static", и всё будет хорошо.
Go to the top of the page
 
+Quote Post
vet
сообщение Oct 9 2005, 12:48
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Как объявлен bytes[]? signed или unsigned char?


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post

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

 


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


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