Ну это только со стороны доки ты описал все)
Если с точки зрения разработчика смотреть, то вот, например у тебя есть двигатель. Только что с завода привезли. К движку есть протокол информационного взаимодействия. Он обычно пишется самими разработчиками движка(если вы с нуля свой двигатель не делали). Если делать свой движок, то это пи* работы, потому что туда еще добавляются алгоритмы векторного управления, а это на стыки физики, сидишь осцилографом смотришь переходные процессы. В общем лють.
Дальше у тебя есть микроконтроллер, где вертится самописаная ОС. Тебе нужно, например, по тз написать софт, который по команде посылает управляющую команду в движок на запуск. Ты пишешь это ПО, прошиваешь им контроллер, тестируешь
Как правило, система состоит из нескольких устройств. Не бывает так, что просто голый камень с кодом работает и все. Он обязательно должен с кем-то общаться. Это может быть как другой твой микроконтроллер (например, подсистема двс общается с подсистемой телеметрии), так и просто устройство вывода(например, дисплей). Общение происходит через различные интерфейсы(у всех свои приколы, разная надежность и способы передачи данных). Для простой передачи потоковых данных можно заюзать RS-232, для более сложной можно заюзать CAN (используется в авто). Самое сложное, с чем доводилось работать -
MIL-STD-1553 и SpaceWire. Для всей этой периферии тоже нужно писать кучу сложного кода.
Если кому интересно подробнее, то есть на хабре
статьи на эти темы, потому что из меня рассказчик так себе) Могу просто поотвечать на вопросики, ну или помочь с железками, если у кого будут задачи подобные. :)
Но если подводить итоги, то работа в несколько раз сложнее, а платят за нее в несколько раз меньше. Сначала я просто совмещал 2 работы, ios была только на удаленке. Сейчас полностью ушел из сферы embedded и оставил на уровне хобби. Грустно все это, но рыночек порешал.