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

 
 
> Есть ли жизнь после WFI?, атомарность WFI
Brain13
сообщение Jun 1 2015, 18:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



Здравствуйте!
Я тут задумался о такой потенциальной проблеме при использовании инструкции WFI: Предположим, что программа должна дождаться получения байта по UART, логичным был бы код
Код
while(!Uart.DataAvailable()) {
    __WFI();
}
// тут обработка данных

Но проблема в том что искомый байт может придти между Uart.DataAvailable() и __WFI(), вызовется обработчик прерывания, после которого вызовется __WFI() и МК больше никогда не проснется.

Вставка критических секций:
Код
__disable_irq();
// тут что-то
__enable_irq();
__WFI();

не спасет ситуацию, так как между __enable_irq(); и __WFI(); может проскочить нужное прерывание(а может не проскочить).

Поиски вывели меня на вот эту англоязычную тему: http://community.arm.com/message/8927 и доку http://infocenter.arm.com/help/index.jsp?t...a/BIHBFEIB.html
Но я так и не понял, что есть решение проблемы.
Так есть ли в Cortex-M гарантированный способ проснуться после WFI?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Brain13   Есть ли жизнь после WFI?   Jun 1 2015, 18:34
- - Golikov A.   А почему вфи будет не после возврата из прерывания...   Jun 1 2015, 18:39
|- - Brain13   Цитата(Golikov A. @ Jun 1 2015, 21:39) А ...   Jun 1 2015, 18:54
|- - Brain13   Кажется, я нашел ответ: http://infocenter.arm.com/...   Jun 1 2015, 20:03
|- - zltigo   QUOTE (Brain13 @ Jun 1 2015, 23:03) Во-вт...   Jun 1 2015, 23:06
- - RabidRabbit   Таки в обработчике прерывания от UART можно взвест...   Jun 1 2015, 19:59
- - Obam   Я посмотрел ARM DDI 0403E.b - Architecture Referen...   Jun 2 2015, 07:06
- - Golikov A.   ЦитатаСоотетственно если байт придет перед инструк...   Jun 2 2015, 07:25
- - sensor_ua   Предложу взглянуть на статью Use an MCU's low-...   Jun 2 2015, 08:50
- - Brain13   Цитата(zltigo @ Jun 2 2015, 02:06) Вы уж ...   Jun 3 2015, 17:18
|- - zltigo   QUOTE (Brain13 @ Jun 3 2015, 20:08) Я дел...   Jun 3 2015, 17:28
|- - Brain13   Цитата(zltigo @ Jun 3 2015, 20:28) Еще ра...   Jun 3 2015, 18:01
||- - zltigo   QUOTE (Brain13 @ Jun 3 2015, 21:01) Тема ...   Jun 4 2015, 00:40
||- - aaarrr   Цитата(zltigo @ Jun 4 2015, 03:40) К част...   Jun 4 2015, 01:05
|- - _4afc_   Цитата(zltigo @ Jun 3 2015, 21:28) Еще ра...   Jun 3 2015, 20:33
|- - aaarrr   Цитата(_4afc_ @ Jun 3 2015, 23:33) Неужто...   Jun 3 2015, 20:49
- - Golikov A.   ЦитатаВот именно, что не кирпич, ведь мы запрещаем...   Jun 3 2015, 19:42
- - ViKo   А в чем, собственно, проблема? Ставьте WFI после о...   Jun 4 2015, 04:00
- - Golikov A.   Проблема понятна, можно даже не брать UART и проче...   Jun 4 2015, 06:26
|- - Obam   Цитата(Golikov A. @ Jun 4 2015, 10:26) По...   Jun 4 2015, 08:07
|- - ViKo   Цитата(Golikov A. @ Jun 4 2015, 09:26) По...   Jun 4 2015, 08:12
- - Golikov A.   О чем собственно и есть эта тема. Как я понял __W...   Jun 4 2015, 09:30
|- - ViKo   Цитата(Golikov A. @ Jun 4 2015, 12:30) Ка...   Jun 4 2015, 10:12
|- - aaarrr   Цитата(ViKo @ Jun 4 2015, 13:12) Где тако...   Jun 4 2015, 10:14
|- - ViKo   Цитата(aaarrr @ Jun 4 2015, 13:14) См. No...   Jun 4 2015, 10:34
|- - aaarrr   Цитата(ViKo @ Jun 4 2015, 13:34) А что в ...   Jun 4 2015, 10:51
|- - ViKo   Цитата(aaarrr @ Jun 4 2015, 13:51) Действ...   Jun 4 2015, 11:45
|- - Obam   Цитата(ViKo @ Jun 4 2015, 15:45) …(устано...   Jun 4 2015, 12:22
|- - ViKo   Цитата(Obam @ Jun 4 2015, 15:22) Вспомнил...   Jun 4 2015, 12:31
- - aaarrr   Можно применить еще такой вариант: Код__SEV(...   Jun 4 2015, 09:50
- - Obam   Всё, согласен. Мир устоял.   Jun 4 2015, 09:57
- - Brain13   ЦитатаЭто говорит о том, что любое запрещенное пре...   Jun 4 2015, 18:22
- - Golikov A.   А вот и последняя часть пазла http://infocenter.a...   Jun 5 2015, 04:38
|- - DmitryM   Цитата(Golikov A. @ Jun 5 2015, 08:38) и ...   Jun 5 2015, 04:46
|- - Obam   Цитата(Golikov A. @ Jun 5 2015, 08:38) и ...   Jun 5 2015, 05:46
- - Golikov A.   Да я о чем-то своем думал, естественно имел ввиду ...   Jun 5 2015, 10:58
- - jcxz   Имхо - у ТС изначально неверно построен алгоритм. ...   Jun 6 2015, 07:14


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

 


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


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