RTOS на STM32

RTOS на STM32

В этом разделе рассматривается использование операционных систем реального времени (RTOS) с STM32. Знание RTOS позволяет создавать многозадачные приложения с высоким уровнем надежности.

2 аудио · 1:37

Nortren·

Что такое RTOS и зачем он нужен на микроконтроллере?

0:49
RTOS, или Real-Time Operating System, — это лёгкое ядро, управляющее несколькими задачами на одном микроконтроллере с гарантиями по времени отклика. Каждая задача — это отдельная функция со своим стеком, и планировщик переключает их по приоритету или по времени. RTOS даёт примитивы синхронизации: семафоры, мьютексы, очереди сообщений. На STM32 чаще всего используют FreeRTOS, входящий в STM32CubeMX. RTOS имеет смысл, когда у приложения несколько независимых активностей с разными требованиями ко времени — например, считывание датчиков, обработка команд по UART и обновление дисплея одновременно.

Что такое инверсия приоритетов в RTOS?

0:48
Инверсия приоритетов — это ситуация, когда задача с высоким приоритетом ждёт ресурс, занятый задачей с низким приоритетом, а задача с низким приоритетом не может его освободить, потому что её вытесняет задача со средним приоритетом. В результате высокоприоритетная задача косвенно блокируется средней. Это классическая проблема RTOS, приводившая к серьёзным сбоям, например к перезагрузкам марсохода Pathfinder. Решение — наследование приоритетов: когда высокоприоритетная задача ждёт мьютекс, владелец мьютекса временно получает её приоритет, чтобы быстрее освободить ресурс. FreeRTOS поддерживает эту стратегию через мьютексы.