Тип volatile указывает компилятору, что переменная может измениться в любой момент , а не только в данном конкретном модуле/функции (например, в прерывании).
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
rezident
29 марта 2006 г. 18:46
В ответ на:
Оптимизация по скорости предпочтительнее оптимизации по размеру, т.к. меньше глюков и размер тоже получается меньше, как ни странно :)
отправлено rezident 29 марта 2006 г. 18:44
Составить ответ
|||
Конференция
|||
Архив
Ответы
Пример.
—
rezident
(29.03.2006 18:58
195.222.149.11
, 400 байт)
Ответ: То есть если допустим программа работает под управлением RTOS и где-то в другом процессе или прерывание возможно изменение этой перменной, то ее необходимо объявить volatile? Даже если при считывание ее я запрещаю прерывания?
—
SMR
(29.03.2006 19:39
82.209.246.143
,
пустое
)
Ответ: Если у нас организован буфер,запись в который происходит по прерыванию, то необходимо и указатель и счетчик объявлять volatile? Или достаточно в программе организовать запрет прерывания при работе с этими переменными.
—
SMR
(29.03.2006 19:45
82.209.246.143
,
пустое
)
Компилятор ничего не знает о прерываниях. Ему прерывания по барабану - разрешены ли они или запрещены. О прерываниях должен сам программист думать.
—
rezident
(29.03.2006 19:49
195.222.149.11
,
пустое
)
Ответ: Я понимаю что о прерываниях я должен заботится сам. Я уточняю должен ли я по мимо запрета прерываний объявлять переменные, изменяемые в прерываниях volatile.
—
SMR
(29.03.2006 19:59
82.209.246.143
,
пустое
)
Обязательно объяви volatile!!!
—
Миша
(29.03.2006 22:09
195.69.133.31
, 792 байт)
Ответ: лучше объявить. Особенно если они размерностью более 2-х байт.
—
rezident
(29.03.2006 20:06
195.222.149.11
,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru