@NEupy

Что нужно знать в для программирования железа?

Недавно заинтересовала эта отрасль, и я хотел бы спросить: Входит ли припаивание микроконтроллеров, схем в эту специальность или там нужно в основном знание C/++ & Assembler?
  • Вопрос задан
  • 255 просмотров
Пригласить эксперта
Ответы на вопрос 5
@MikeDeblin
Умение паять может быть полезным, но не обязательным при работе с готовым, собранным устройством.
Как минимум нужно понимать как и что делает определенный узел к которому можно программно обратиться.
Уметь читать даташиты (минимум понимать параметры), понимать работу типовых схем, взаимодействие компонентов и т.д. Желательно уметь пользоваться контрольно-измерительными приборами.
Начните с arduino или STM32. Соберите пару-тройку устройств, далее поймете в какую сторону двигаться.
Можете собрать не на макетке, а сделать полноценную плату, припаять детали, потом запрограммировать.
Ответ написан
Moskus
@Moskus
Если отвечать формально, то, конечно, нет - для программирования уметь паять не нужно. Но так обычно случается, что хороший специалист по низкоуровневому программированию в процессе учёбы осваивает некоторые смежные навыки. Тем более, именно паять - не так уж и сложно. Наличие таких смежных навыков существенно повышает уровень подготовки и ускоряет процесс разработки, особенно, если работать в маленькой компании, где ценятся широкие, а не узкие специалисты.
Ответ написан
@lamerok
Вообще, если вы хотите быть именно программистом, то знание как паять и деталей схемотехники не нужны. Обычно в более менее приличных конторах разделяют схемотехника и программиста. Но в небольших конторах, это может совмещаться, однако это сильно влияет на качество.
Поэтому если вы хотите быть специалистом высокого класса, то лучше разделить две эти вещи, схемотехника и программирование.

В целом программирования для микроконтроллеров можно как и любую другую разработку разделить на уровни.
Для простоты скажем это Уровень железа (Hardware Abstact Level (HAL)) и уровень приложения (Application или Business Level)

Для того, чтобы заниматься уровнем железа необходимо:
  1. В первую очередь знать как работает микроконтроллер, и всякая периферия от простых портов, UART, ADC, SPI и до USB, Ethernet и Bluetooth. Для этого необходимо почитать соответствующую литературу, можно статьи, коих много в интернете.
    И после этого ознакомления, самое главное, необходимо изучить оригинальные спецификации на все это, потому что только там есть правда.
  2. Необходимо знать язык программирования, для начала Си, но лучше сразу начать с С++ :). Ассемблер вам понадобиться в настоящих приложениях очень редко, только если, вы скажем, захотите написать свою RTOS . Т.е. особо без надобности изучать ассемблер не надо, но как работает ПО прошитое в микроконтроллер и сам микроконтроллер вы знать должны (Стек, как происходит вызов функций, как выполняется прерывание, как создаются динамические объекты, что такое куча и т.д.)



Для того, чтобы заниматься уровнем приложения:
  1. строго говоря можно про аппаратуру знать постольку поскольку, например, если у вас уже написал HAL для UART, то вам не надо знать, какие там регистры используются для установки четности или скорости, вы просто будете вызывать соответствующие функции HAL

  2. однако тут необходимо знать дополнительно много всего, включая С++ и, например, паттерны проектирования, Операционные системы реального времени, парадигмы программирования ( к примеру, ООП, метапрограммирование) и т.д.



В общем и целом, если контора небольшая то, для "программирования железа" необходимо уметь все от разработки схем и оптимизации кода на ассемблере до Метапрограммирования... Таких людей в жизни я не видел. Есть люди которые знают это все, но знания очень поверхностные, есть которые хорошо знают одну часть, но не очень другую.

Обычно все таки людей разделяют на схемотехника и программиста, который делает все от HAL до бизнес логики.

В идеале, должны быть 3 человека, схемотехник, программист низкого уровня (HAL, стеки, драйвера), программист бизнес логики
Ответ написан
@vanyamba-electronics
Это зависит от проекта. Там ещё и осциллограф нужен.
Ответ написан
CityCat4
@CityCat4
Кошки не похожи на людей, кошки - это кошки!
Вполне возможно что и входит, смотря что делать :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Кворум Москва
от 200 000 до 250 000 руб.
от 3 000 до 4 000 usd.
АКМЭ сервис Санкт-Петербург
от 80 000 до 100 000 руб.
18 июл. 2019, в 15:49
2000 руб./за проект
18 июл. 2019, в 15:44
1000 руб./за проект