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

 
 
> Помогите! Не работают OS*Post из прерываний
vitek101
сообщение Aug 25 2009, 11:09
Сообщение #1


Участник
*

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



Пишу для XMega128, IAR 5.20. Не работают вызовы OSMboxPost, OSSemPost и OSQPost из обработчика прерывания. Между задачами вызовы работают прекрасно, сами прерывания тоже работают (диоды моргают, байты в UART бегают). Что делать ума не приложу 07.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vladimir_T
сообщение Aug 25 2009, 16:25
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Непосредственно из прерывания сервисы ОС вызывать нельзя. Можно находясь в прерывании вызвать вспомогательную функцию в которой и устанавливается, например, семафор:
OSSemPost (Sem_LCD); // установить семафор для прорисовки дисплея
В отладчике можно проследить за переменной-семафором.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 26 2009, 08:08
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Vladimir_T @ Aug 25 2009, 20:25) *
Непосредственно из прерывания сервисы ОС вызывать нельзя.

Почему?

Цитата
Можно находясь в прерывании вызвать вспомогательную функцию в которой и устанавливается, например, семафор:

Чем прямой вызов OSSemPost будет принципиально отличаться от его вызова через промежуточную функцию?


Цитата(vitek101 @ Aug 26 2009, 08:42) *
Сейчас попробовал - не работает. Смотрю в отладчике, при вызове OSSemPost параметр pevent равен нулю и в жирном месте процедура вылетает. Если вызываю из задачи, то все нормально. Сам этот параметр при вызове располагается в регистрах R24-R25. Не может система при вызове прерывания как-нибудь кривить их? 05.gif

По моему у вас проблемы не с ОС, а с Си. Код покажите. Как вы семафор объявляете, как инициализируете. Вы уверены, что он успевает инициализироваться до первого прерывания?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post



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

 


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


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