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

 
 
> Оптимизатор IAR, Как локально отключить оптимизатор IAR
Sergio66
сообщение Feb 14 2006, 12:28
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526



Проблема такая - IAR овский компиллер выкидывает строки из программы (на листинге они просто закомментированы) по своему усмотрению. Как можно заставить его не делать это. Отключение оптимизации для определенной функции не устраивает. Т.к. тот код, который выкидывается - опрос готовности клавиатуры используется во многих функциях программы и если для каждой из них отключить оптимизацию, то код вылезет из памяти.
Это и есть злополучная строка.
while(!(system_events.events_by_flags.Key_pressed)) {RETURN_IF_ING_OFF;};
system_events.events_by_flags.Key_pressed - это итовое поле, выставляемое в обработчике прерывания клавиатуры,
RETURN_IF_ING_OFF - макрос выхода из функции при снятиии сигнала с определенной ноги процесстра.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Виктория
сообщение Feb 14 2006, 13:11
Сообщение #2


инженер
****

Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701



Ну еще бы я явно проверку выполняла
while(flag==0){ }

В общем я за то, чтобы разобраться почему, а не локально оптимизатор отключать. Хотя опции оптимизации тоже нужно посмотреть. У Вас какие установлены при этом? (По памяти/быстродействию/глобальная/...). Может быть для выбранной опции тип volatile игнорируется.

Сообщение отредактировал Vic1 - Feb 14 2006, 13:27
Go to the top of the page
 
+Quote Post



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

 


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


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