Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2021-ноя-28 02:24

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 5 сообщений ] 
Автор Сообщение
 Заголовок сообщения: FreeRTOS и прерывания
СообщениеДобавлено: 2021-окт-18 13:03 
Не в сети

Зарегистрирован: 2019-июн-05 21:54
Сообщения: 62
Организация: ООО Энейс
Здравствуйте!

Прошу подсказать по поводу способа взаимодействия между потоками в случае использования аппаратных прерываний МК
Очереди?, стрим сообщения, мьютесы-семофоры??
Заранее благодарен!


Вернуться к началу
 Заголовок сообщения: Re: FreeRTOS и прерывания
СообщениеДобавлено: 2021-окт-18 13:19 
Не в сети

Зарегистрирован: 2017-июн-05 14:53
Сообщения: 24
Организация: ОАП АПЗ
Вот здесь хорошо всё разжёвано.
https://mcuoneclipse.com/2016/08/14/arm ... os-part-1/


Вернуться к началу
 Заголовок сообщения: Re: FreeRTOS и прерывания
СообщениеДобавлено: 2021-окт-18 15:16 
Не в сети

Зарегистрирован: 2014-июн-25 09:29
Сообщения: 148
А подробней суть проблемы можете описать?
Имею большой опыт использования ОСРВ Keil RTOS2 и Keil RTX. Возможно, по аналогии что-нибудь подскажу.


Вернуться к началу
 Заголовок сообщения: Re: FreeRTOS и прерывания
СообщениеДобавлено: 2021-окт-18 16:59 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 530
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
Иван_К10 писал(а): *
Здравствуйте!

Прошу подсказать по поводу способа взаимодействия между потоками в случае использования аппаратных прерываний МК
Очереди?, стрим сообщения, мьютесы-семофоры??
Заранее благодарен!
Здравствуйте!

Обратите, пожалуйста, внимание, что подход в реализации функций обработчиков прерываний, даже с учётом использования ОСРВ, остаётся стандартный: имеется карта прерываний, их приоритетность, а также отдельная функция обработки какого-то нужного прерывания, куда будет стекаться выполнение программы в случае возникновения события, порождающего это самое прерывание - здесь важно просмотреть статью пользователя dOb, который любезно выдал рекомендации по запросу первым ответным постом в данной теме форума, при этом рекомендации из статьи полезны при понимании физики работы контроллера NVIC за пределами использования ОСРВ.

ОСРВ FreeRTOS, в свою очередь, предоставляет некоторый дополнительный функционал по отложенной обработке прерываний с использованием как раз-таки семафоров. В качестве справки можете ознакомиться со статьей стороннего ресурса КиТ "FreeRTOS — операционная система для микроконтроллеров. Часть 6". При этом данный функционал может и не применяться в Ваших проектах: если требуется простая обработка прерывания от таймера, например, по совпадению значения счёта со значением основания счёта, то это будет простая реализация функции void Timerx_IRQHandler(void) {} с соответствующей активацией нужного прерывания в контроллере NVIC.

Поскольку работа всей ОСРВ, а также отдельных структурных единиц, таких как семафоров, четко завязана на временных отсчётах, обращаю Ваше внимание на особенность использования FreeRTOS в связке с микроконтроллером 1986ВЕ1Т. Дело в том, что по умолчанию ОСРВ FreeRTOS работает от счёта системного таймера SysTick, который входит в состав ядра, однако, для микроконтроллера 1986ВЕ1Т актуальна ошибка 0011 "Ошибка системного таймера" из файла errata на рассматриваемую микросхему - системный таймер считает неточно. Функционал FreeRTOS позволяет перевести все внутренний отсчёты для работы ОСРВ с системного таймера на другой источник, и для этого можно воспользоваться таймерами общего назначения. Алгоритм перевода счёта ОСРВ FreeRTOS с системного таймера на таймер общего назначения приведен в статье стороннего ресурса StartMilandr "Использование RTX OS Keil в 1986ВЕ1".

Благодарим за обращение.

_________________
Отдел технической поддержки support@milandr.ru

Информационный портал отдела технической поддержки support.milandr.ru


Вернуться к началу
 Заголовок сообщения: Re: FreeRTOS и прерывания
СообщениеДобавлено: 2021-окт-18 19:58 
Не в сети

Зарегистрирован: 2020-фев-07 21:59
Сообщения: 27
Организация: Частное лицо
Lampadov писал(а): *
ОСРВ FreeRTOS, в свою очередь, предоставляет некоторый дополнительный функционал по отложенной обработке прерываний с использованием как раз-таки семафоров.
Добавлю, что не семафорами едиными. FreeRTOS также предоставляет механизм Task Notifications, который имеет некоторые преимущества перед семафорами.


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

Часовой пояс: UTC+03:00


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

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


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

Перейти: 

cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB