По моему опыту, в основном используется операционная система
- для управления ресурсами на устройстве, такими как планирование задач, распределение ресурсов и т. Д. И
- для абстрагирования некоторых аппаратных интерфейсов низкого уровня, таких как обработка потоков, обработка прерываний и т. Д.
Если какая-либо из этих функций необходима, может быть хорошей идеей является использование операционной системы. Теперь, конечно, во всех случаях потребуется некоторая форма двух вышеуказанных функций. Но в простых устройствах может быть проще кодировать конкретную функцию, чем пытаться портировать ОС на устройство. Но в других случаях, когда устройство намного сложнее, может быть лучше потратить время на то, чтобы попытаться использовать ОС, а не кодировать все это.