Как мы знаем, FreeRTOS — это операционная система реального времени.
Например, если мы возьмем объяснение из вики:
В FreeRTOS есть то, что мы можем назвать «инверсией контроля» — FreeRTOS контролирует все задачи, выполняемые программистом.
Также FreeRTOS является расширяемым.
Проблема с этим определением заключается в том, что когда мы берем «немодифицируемый структурный код» — FreeRTOS разворачивается в основном как исходный код для пользовательского проекта — вы можете изменить его.
Является ли FreeRTOS фреймворком?
И есть ли лучшие определения для фреймворков?
Нет, FreeRTOS, как и большинство других ядер RTOS, это просто набор инструментов, а не фреймворк. Это потому что вы нужно написать тело каждой задачи, как правило, в виде бесконечного цикла. Затем вы решаете, какие механизмы блокировки RTOS (семафоры, временные задержки, флаги событий и т. Д.) Использовать для «регулирования» выполнения тела вашей задачи.
В рамках, вы, как правило, не сделали бы этого. Фреймворк обеспечит основную часть ваших задач, а также обеспечит механизм блокировки. Например, платформа может структурировать каждую задачу как цикл обработки событий (a.k.a. «message-pump») с очередью сообщений. Тогда рамки назовут ваш код для обработки каждого события. Вот как инверсия контроля (определяющая характеристика каркаса).
Обратите внимание, что ОСРВ Можно использоваться в качестве компонента фреймворка, но сама ОСРВ не является фреймворком.
Других решений пока нет …