Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Не должен. Для AVR это не атомарный тип.
Отправлено
Oldring
29 августа 2008 г. 23:57
В ответ на:
IAR AVR 5.11 должен запрещать прерывания при изменении volatile long переменной которая может изменится в прерывании или это нужно сделать руками? Вопрос возник потому-что смотрю листинг и прерывания не запрещаются при изменении переменной
отправлено Sinelogic 29 августа 2008 г. 23:21
Составить ответ
|
Вернуться на конференцию
Ответы
А как тогда быть? Ведь прерывание может вызваться в процессе присвоения значения и тогда будет неправильный результат
-
Sinelogic
(30.08.2008 00:04:31
78.137.30.238
,
пустое
)
Пользоваться средствами синзронизации. В простейшем случае голого компилятора без ОС - запреты прерываний.
-
Oldring
(30.08.2008 00:51:48
91.77.103.189
,
пустое
)
И такая же проблема при считывании значения этой переменной
-
Sinelogic
(30.08.2008 00:30:17
78.137.30.238
,
пустое
)
Реализуйте атомарность ручками, путем запрета/разрешения прерывания в котором эта переменная может изменится.
-
rezident
(30.08.2008 00:34:2
77.43.214.86
,
пустое
)
Просто как-то неудобно получается. Может можно компилятору обьяснить это?
-
Sinelogic
(30.08.2008 00:41:8
78.137.30.238
,
пустое
)
да - написать свои функции, которые буд=уте запрещать прерывания, изменять/считывать переменную по указателю и потом разрешать прерывания. Например.
-
Oldring
(30.08.2008 00:54:19
91.77.103.189
,
пустое
)
Никак.
-
Леонид Иванович
(30.08.2008 00:51:59
87.252.227.56
,
пустое
)
Разве что сделать для чтения специальную функцию с модификатором monitor.
-
Леонид Иванович
(30.08.2008 00:52:46
87.252.227.56
,
пустое
)
может изменитЬся. А то ДрАлекс еще и меня упрекнет в безграмотности :)
-
rezident
(30.08.2008 00:38:33
77.43.214.86
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 63:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru