В качестве своего рода противоположность этому вопросу: "Программирование встроенных систем низкого уровня для разработчиков программного обеспечения" . Я хотел бы попросить совета о переходе с низкоуровневые встроенные системы для программирования для более сложных систем с ОС, особенно встроенных Linux.
В основном я работал с небольшим оборудованием и программным обеспечением микроконтроллера, но теперь занимаюсь только программным обеспечением. Мое образование также состоит из аппаратного обеспечения и встроенных вещей в основном. У меня не было много курсов программирования и я мало знаю о разработке программного обеспечения или OO-кодировании.
Теперь у меня есть большой проект в моих руках, который будет реализован во встроенной Linux. У меня серьезные проблемы с дизайном вещей и сохранением управляемости, потому что мне не нужно было этого делать раньше. Кроме того, использование многозадачности и блокировки вызовов вместо запуска "параллельной" задачи из основной функции похоже на другой мир.
Какой опыт вы испытываете при переходе от низкоуровневого программирования к более крупным системам с ОС (Linux)? Что было тяжело и как вы его разрешили? Какое мышление необходимо?
Было бы полезно изучить С++ с нуля или продолжить использование простой C?