Easyelectronics.ru

Электроника для всех
Текущее время: 22 сен 2018, 16:25

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Вызов нескольких функций FreeRTOS из прерывания
СообщениеДобавлено: 15 мар 2018, 12:58 
Только пришел

Зарегистрирован: 01 дек 2015, 18:24
Сообщения: 16
Каким образом из одного прерывания можно вызвать несколько функций RTOS? Допустим выставлено несколько битов регистра(ров), один из которых уведомляет об окончании приема данных, соответственно нужно отправить эти данные в очередь, второй уведомляет об окончании передачи данных и отправляет семафор совершенно другой задаче.
В функциях ...FromISR есть параметр pxHigherPriorityTaskWoken который выставляется в pdPASS в случае, если необходимо переключить контекст. Но, что делать, если при вызове первой функции контекст переключать нет необходимости, а при вызове второй такая необходимость есть? Переключать его или нет? Или вызов двух АПИ РТОСа из одного прерывания невозможно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов нескольких функций FreeRTOS из прерывания
СообщениеДобавлено: 15 мар 2018, 18:19 
Только пришел

Зарегистрирован: 01 дек 2015, 18:24
Сообщения: 16
Похоже разобрался,
1) Контекст можно вовсе не переключать: pxHigherPriorityTaskWoken is an optional parameter and can be set to NULL.
2) Можно завести одну переменную инициализированную нулем и в нее писать при каждом вызове АПИ РТОСа с прерывания, если при выходе из прерывания она равна 1 -переключить контекст


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов нескольких функций FreeRTOS из прерывания
СообщениеДобавлено: 16 мар 2018, 09:51 
Старожил
Аватара пользователя

Зарегистрирован: 01 ноя 2011, 23:51
Сообщения: 542
Neo_Matrix писал(а):
Похоже разобрался,
1) Контекст можно вовсе не переключать: pxHigherPriorityTaskWoken is an optional parameter and can be set to NULL.
2) Можно завести одну переменную инициализированную нулем и в нее писать при каждом вызове АПИ РТОСа с прерывания, если при выходе из прерывания она равна 1 -переключить контекст

Ну а еще мне кажется в вашем случае можно вообще обойтись одной ф-цией SetEvent, просто выставлете битовую маску и по ней делаете то что хотите. Хоть в одной задаче хоть в разных..
Ну или возможно я не правильно Вас понял.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB