Загрузка...

С чего начать embedded?

Тема в разделе C/C++ создана пользователем alisaosipova 5 мар 2024. 207 просмотров

Загрузка...
  1. alisaosipova
    alisaosipova Автор темы 5 мар 2024 1 5 фев 2024
    Всем :anime_hi: , я начал изучать c++ 14/17/20, попробовал qt/qml, понял что не мое эти графические интерфейсы. Щас начал изучать разработку под linux. Недавно кореш рассказал про ArduPilot и ROS и я начал читать про embedded разработку и понял что я хочу этим заниматься под линукс или виндовс. мои знания в c++ базовые(60 задач на литкоде, stl, знание cURL и nlohmann-json запросов на базовом уровне). как думаете ребят, с чего начать если хочу делать под raspberry? и стоит ли начинать?(востребована сейчас такая работа или нет)
    Добавлю, что я в основном хочу работать с БПЛА(дронами), но если лучше начинать с чего то другого, то я не против!
    Спасибо за ответ :owoshy:
     
    5 мар 2024 Изменено
    1. 0nera
      alisaosipova, как инженер программист встраиваемых систем:
      Направление актуальное, советую изучить встраиваемый линукс, он у нас тут везде
      Также советую заняться хобби-проектом, к примеру свой DOS написать (могу с этим помочь)
  2. iosios
    iosios 5 мар 2024 7 2 мар 2024
    Эмбага актуальна, как и всегда. Но в этой сфере не так как в энтерпрайзе, не так много вакансий и не так много откликов на них. Только не понятно, что имелось ввиду под " я хочу этим заниматься под линукс или виндовс".
    БПЛА у нас и в наше время только оборонка делает, туда сложно попасть (и нужно ли?). Только в какой-то Китай и США, да фермы в Европе. Да и остальная эмбага тоже или государственная, или заграничная, в основном.

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

    В принципе, после этого уже вкат совершился. Дальше можно на раст смотреть, Подтягивать знания по нетворку, архитектуре процов и так далее.
     
    5 мар 2024 Изменено
  3. Mountain_Dew
    Я начал с того, что захотел сделать свой проект электронного мультитула. Купил набор для ардуино и все там перепробовал интересное. Прочитал книжки по C/С++. Потом купил esp32 devboard и начал делать свой проект. Освоил базу FreeRTOS, начал работать над принципиальной схемой. До embedded lunix сам еще не добрался и не тороплюсь, так что не шарю. Мораль в том, что можно попробовать сделать свой небольшой проект, и пока его делаешь - во всем разберешься. Мне кажется если идти по пути, предложенным выше, можно застрелиться: с STL к ассемблеру. Сейчас плюсы продвигают в mbd, мне, например, недавно порекомендовали ETL (Embedded Template Library) для решения одной задачи. Там почти все фишки STL, но заточенные под mbd. Насчет перспективности работы мне вообще все равно, я инженер по специальности
    --- Сообщение объединено с предыдущим 11 мар 2024
    Вообще mbed lunix считается уже серьезным уровнем. Возможно, стоит начать с чего-нибудь попроще, познакомиться с основными аппаратными интерфейсами (I2C, SPI, 1Wire) , функционалом котроллеров/одноплатников, научиться работать с FreeRTOS. Под винду, естественно, не получится)
     
    11 мар 2024 Изменено
Top