Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Глюк оптимизатора?

Непрочитано 10.08.2013, 15:02  
Flopix
Гражданин KAZUS.RUN
 
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
Flopix на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

nahimovv, значит я еще не нарывался. У меня в проекте глобальная переменная объявленная без дополнительных спецификаторов изменяется только в прерывании, а в основном цикле проверяется. Программа сохраняет свою работаспособность при любом уровне оптимизации. Значит мне просто повезло.
Загуглил. В самом стандарте Ansi Си ничего не сказано по поводу прерываний и спецификатора volatile. Также пишут что разные компиляторы на это реагируют по разному. Но wss60 прав. Указывать volatile в таких случая желательно.
Реклама:

Последний раз редактировалось Flopix; 10.08.2013 в 15:04.
Flopix вне форума  
Непрочитано 10.08.2013, 15:26  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Сообщение от Flopix Посмотреть сообщение
В самом стандарте Ansi Си ничего не сказано по поводу прерываний и спецификатора volatile.
Художественный свист. Впрочем, врядли он художественный.

__________________
Сообщение от Flopix Посмотреть сообщение
Получается что компилятор не считает процедуру прерывания частью программы раз она не вызывается явно и решает что значит эти 2 переменные никогда не изменяются?
Нет, дело в другом. Ищите по ключевым словам execution path.
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 10.08.2013 в 15:28.
tempora вне форума  
Непрочитано 10.08.2013, 15:37  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Сообщение от Flopix Посмотреть сообщение
Указывать volatile в таких случая желательно.
Если не хотите сюрпризов - не должно быть ничего неявного.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 10.08.2013, 18:46  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Сообщение от Flopix Посмотреть сообщение
значит я еще не нарывался.
Сюда же можно добавить атомарность и барьеры (для конвейерных МК).
Такшта... у вас ещё всё впереди!
nahimovv вне форума  
Непрочитано 10.08.2013, 18:51  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Вдогонку. На ИзыйдиЭлектроникс как-то была статья "о вреде volatile". Не могу сказать что я согласен с аффтором, но почитать будет интересно, для общего развития.
nahimovv вне форума  
Непрочитано 10.08.2013, 19:29  
Chudilo
Временная регистрация
 
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
Chudilo на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Кстати, если вы объявили переменную как volatile, то и в других файлах при объявлении этой переменной как внешней тоже нужно указывать, что она volatile. Иначе нарвётесь на грабли, описанные в начале поста.

Например, если в файле main.c есть переменная
Код:
volatile int waitTime;
то и в других файлах, например utils.c, она должна быть объявлена как volatile
Код:
extern volatile int waitTime;
Можно написать так и компилятор сделает свою работу
Код:
extern int waitTime;
но это очередная шишка на вашем лбу
Chudilo вне форума  
Сказали "Спасибо" Chudilo
Flopix (10.08.2013)
Непрочитано 10.08.2013, 19:34  
Chudilo
Временная регистрация
 
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
Chudilo на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Сообщение от nahimovv Посмотреть сообщение
Вдогонку. На ИзыйдиЭлектроникс как-то была статья "о вреде volatile". Не могу сказать что я согласен с аффтором, но почитать будет интересно, для общего развития.
А можно ссылку в студию?
Chudilo вне форума  
Непрочитано 10.08.2013, 19:57  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

А поиском? Не?
http://we.easyelectronics.ru/Soft/sk...-volatile.html
nahimovv вне форума  
Непрочитано 11.08.2013, 09:29  
Сергей_Ковалев
Вид на жительство
 
Регистрация: 09.01.2011
Сообщений: 363
Сказал спасибо: 31
Сказали Спасибо 86 раз(а) в 59 сообщении(ях)
Сергей_Ковалев на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

Сообщение от nahimovv Посмотреть сообщение
А поиском? Не?
Что поиском?
Сообщение от Chudilo Посмотреть сообщение
ИзыйдиЭлектроникс
???
Издеваетесь?
Сергей_Ковалев вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюк генератора частоты Proteus nictrace Proteus 5 21.09.2011 09:00
[Решено] Глюк светодиода HB5-439AWCA sergsher Коллекция глюков 3 16.10.2010 09:36
Присвоение значения - глюк Протеуса? maxNTF Микроконтроллеры, АЦП, память и т.д 24 26.02.2010 13:14
Глюк работы модема US Robotics 56К ant_ Коллекция глюков 3 19.06.2009 08:10
Какой-то глюк с PIC в Proteus Alexandr_Il Микроконтроллеры, АЦП, память и т.д 19 11.01.2009 00:12


Часовой пояс GMT +4, время: 04:53.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.