Gradient 0 Posted April 12, 2021 · Report post Возникла следующая неувязка. Использую в проекте собранную сторонней компанией библиотеку. Он в прерывании читает данные и вызовом каллбэка отправляет мне. Пробую в этом каллбэке запихать данные в канал. После вызова push scmrtos падает. Добавление макроса OS::scmRTOS_ISRW_TYPE TISRW решило бы проблему, но каким образом вставить в начало обработчика прерывания чужой либы? Подскажите, как обойти проблему? Quote Ответить с цитированием Share this post Link to post Share on other sites
MrBearManul 0 Posted April 12, 2021 · Report post Я бы попробовал так "в лоб". void MyCallback { OS::scmRTOS_ISRW_TYPE TISRW; // Ваш код обраотчика } // здесь на выходе деструктор TISRW просто восстановит состояние слова состояния процессора, и инициирует перепланировку Ну, и надеюсь, сторонняя либа работает к рамках ОСРВ? А то может получиться неизвестно что) Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 12, 2021 · Report post Ща потестю.. Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 12, 2021 · Report post Вроде помогло. За пару часов сбоев нет. Спасибо. Quote Ответить с цитированием Share this post Link to post Share on other sites