ArtDenis 0 17 ноября, 2014 Опубликовано 17 ноября, 2014 · Жалоба Приветствую. Позволяет ли FreeRTOS такое, что захват мьютекса происходит в задаче, а освобождение - в прерывании? Например, я в задаче захватываю мьютекс, защищающий АЦП и запускаю преобразование. Затем в прерывании я читаю значение преобразования и освобождаю мьютекс. Прокатит ли такое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lgpl 0 17 ноября, 2014 Опубликовано 17 ноября, 2014 · Жалоба Приветствую. Позволяет ли FreeRTOS такое, что захват мьютекса происходит в задаче, а освобождение - в прерывании? Например, я в задаче захватываю мьютекс, защищающий АЦП и запускаю преобразование. Затем в прерывании я читаю значение преобразования и освобождаю мьютекс. Прокатит ли такое? прокатит -- смотрите описание функции Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость nill 17 ноября, 2014 Опубликовано 17 ноября, 2014 · Жалоба В описании на xSemaphoreGiveFromISR сказано следующее: Mutex type semaphores (those created using a call to xSemaphoreCreateMutex()) must not be used with this macro. Так что используйте бинарный семафор. Там же приводтся нужный Вам пример использования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ArtDenis 0 26 ноября, 2014 Опубликовано 26 ноября, 2014 · Жалоба nill, спасибо за совет. Действительно, оказывается мьютексы нельзя использовать из прерываний. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться