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

 
 
> STM32 - Атомарная операция в обработчике прерывания.
Alt.F4
сообщение Jan 7 2015, 22:20
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Здравствуйте.

Настроено две группы прерываний, в группе с наименьшим приоритетом есть прерывание, в котором надо осуществить атомарно одну операцию. Я так понимаю, надо перед ней поставить disable_irq и после нее enable_irq, но в AVR такое действие приводило к вложенным прерываниям.
Подскажите, пожалуйста, не сможет ли глобальное разрешение прерываний в обработчике привести к ситуации, что данное прерывание будет прервано другим из одной и той же группы приоритетов?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alt.F4
сообщение Jan 8 2015, 16:06
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



SSerge, спасибо!
kan35, да, я в курсе атомарного bitbanding'a, но у меня в прерывании надо в один буфер срочно толкнуть байт, поэтому одним тактом там не обойдется.

Спасибо большое за разъяснение вопроса! Буду использовать в обработчике disable_irq и enable_irq.
Go to the top of the page
 
+Quote Post
kan35
сообщение Jan 9 2015, 19:02
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Цитата(Alt.F4 @ Jan 8 2015, 19:06) *
SSerge, спасибо!
kan35, да, я в курсе атомарного bitbanding'a, но у меня в прерывании надо в один буфер срочно толкнуть байт, поэтому одним тактом там не обойдется.

Спасибо большое за разъяснение вопроса! Буду использовать в обработчике disable_irq и enable_irq.

Но все таки... Если писать байт в RAM, то атомарность итак будет, или в Cortex-M работа идет только со словами и полусловами? Люди, кто знает его ассемблер - подскажите.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 08:28
Рейтинг@Mail.ru


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