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

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

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

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

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

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

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

 
Опции темы
Непрочитано 10.08.2013, 15:02  
Flopix
Гражданин KAZUS.RU
 
Регистрация: 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.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 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
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,543
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Глюк оптимизатора?

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

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

А поиском? Не?
http://we.easyelectronics.ru/Soft/sk...-volatile.html
nahimovv вне форума  
Непрочитано 11.08.2013, 09:29  
Сергей_Ковалев
Вид на жительство
 
Регистрация: 09.01.2011
Сообщений: 364
Сказал спасибо: 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, время: 20:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot