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

 
 
> WinAVR, Вопрос по оптимизации
EugeNNe
сообщение Jul 3 2008, 06:32
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Можно ли как то указать компилятору что данный участок кода не нужно оптимизировать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
EugeNNe
сообщение Jul 3 2008, 06:58
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Жаль. Придётся на асме отдельный кусок лепить...
Go to the top of the page
 
+Quote Post
aesok
сообщение Jul 3 2008, 07:01
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(BigBolt @ Jul 3 2008, 10:58) *
Жаль. Придётся на асме отдельный кусок лепить...


А может вначале расказать в чем проблемма, может Вам подскажут более простое решение?

Анатолий.
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Jul 3 2008, 08:41
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(aesok @ Jul 3 2008, 11:01) *
А может вначале расказать в чем проблемма, может Вам подскажут более простое решение?
Анатолий.



При оптимизации -0s функция компилится не так как бы этого хотелось. Переменная которая изменяется в прерывании в данной функции не обновляется даже с использованием volatile. Если компилить при опции -О0 то всё нормально...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 3 2008, 08:49
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(BigBolt @ Jul 3 2008, 11:41) *
Переменная которая изменяется в прерывании в данной функции не обновляется даже с использованием volatile.
Раз код настолько секретный, что даже кусочек его показать нельзя, рискну телепатировать, что переменная - указатель. И объявлена как-то вроде volatile char * Variable. Угадал?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
EugeNNe
сообщение Jul 3 2008, 09:04
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Цитата(Сергей Борщ @ Jul 3 2008, 12:49) *
Раз код настолько секретный, что даже кусочек его показать нельзя, рискну телепатировать, что переменная - указатель. И объявлена как-то вроде volatile char * Variable. Угадал?


Да нет не секретный, уже всё переделал. Структура, доступ к которой происходит через указатель. В цикле проверки обращениее к ней происходит один раз, при входе в цикл ожидания. А потом проверяется одно и тоже значение. Естественно сообщение о том что произошло некое событие не фиксируется.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 3 2008, 10:07
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(BigBolt @ Jul 3 2008, 12:04) *
Да нет не секретный, уже всё переделал.
Ну так покажите. На словах тяжело воспринимается. У вас скорее всего как volatile был объявлен сам указатель, а не то, на что он указывет. Или наоборот. Отсюда и проблемы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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