LINUX.ORG.RU
ФорумTalks

Mein Embedded

 ,


0

4

Пятничная тема про Embedded aka программирование микроконтроллеров (не совсем тождественные понятия, но всё же). Я работаю немногим дольше трёх лет (а вообще почти четыре), пока что в двух конторах работал. Хочу перетереть за жизнь с теми кто работает в этой же области (ну можно и не только с ними).

Сразу к делу.

Уныло это как-то всё. Я вполне допускаю, что это всё потому что я не бог весть какой инженер (программист) и мне просто не попадались сложные задачи, пусть так. Пишу я в основном на голом железе и под FreeRTOS. Писал под TMSы, STMы и немного AVR и PIC. Что у нас там есть? Интерфейсы передачи данных, АЦП, ШИМы да каналы захвата. Вот здесь можно DMA подключить. Иногда надо USB присобачить, совсем круто сымитировать или накатить настоящую файловую систему. Иногда что-то по сети передавать. Иногда надо что-то осциллографом смотреть, кому-то нравится, а я не люблю, отвлекает. Вообще стараюсь схемотехники не касаться, благо в обоих конторах этим отдельные люди занимались. Каждый раз моя разработка - или машина состояний на голом железе, или задач под FreeRTOS наструячить.

По предметной области - немного ЦОСа (фильтры подобрать/написать), немного ТАУ. Часто приходится парсить разные протоколы, иногда что-нибудь в матлабе моделировать, один раз приходилось систему стабилизации камеры писать (было прикольно, там и алгебра, и моделирование, но получилось не очень точно). Большая часть моих устройств занимается передачей данных, некоторые делают что-то конкретное (генерируют данные или управляют чем-то). Вообще мне кажется иногда, что лучше б я на конкретной инженерной специальности фокусировался, типа ЦОС или системы управления или что-нибудь ещё. Железо (имею в виду схемотехнику, от которой тащатся многие эмбеддеры, вероятно потому что многие из них изначально радиоэлектронщики) не люблю. Меня особенно дико выбешивает когда что-то не так запаяно и приходится это искать.

Вот и весь мой эмбеддед. Возможно я просто не сталкивался со сложными задачами. Возможно две работы - это небольшой опыт и много чего я не видел. Возможно разработка в эмбеддед и под всё остальное сейчас на самом деле не сильно отличаются.

Но просто я как-то глянул как дрова под Linux пишутся и ничего вообще не понял, откуда эти тонны структур и дескрипторов, что здесь мляха происходит. Открыл проект на С++ (не эмбеддед) и тоже почти нихрена не понял. У меня такое чувство, как будто программистская/CS жизнь проходит мимо меня. ИИ, анализ данных, современные языки программирования и многое-многое другое. Я и не спец по какой-то инженерной области, и не программист.

А у вас есть такое чувство? Вам нравится? У вас сложные интересные проекты? Чем вообще занимаетесь?

Зажрался ты.

Надо тебя в жабу/пыхпыхговнокод/XML-RPC-JSON-ы всякие окунуть и спросить про эмбедщину снова :)

Harald ★★★★★ ()

Зависит только от твоего желания развиваться и расширять кругозор.

откуда эти тонны структур и дескрипторов, что здесь мляха происходит

все это выясняется по мере необходимости (или ты думаешь, все разрабы это в голове держат)

markontheboard ()
Ответ на: комментарий от Harald

Надо тебя в жабу/пыхпыхговнокод/XML-RPC-JSON-ы всякие окунуть и спросить про эмбедщину снова :)

плюсую этого оратора. в жабу ТСа, в spring+hibernate по самые уши.

upcFrost ★★★★★ ()

через 3-4 года все приедается и думаешь «а вон там вон люди чем-то клевым занимаются». идешь туда, 4 года --- опять шлак.

привыкай.

или в начальники.

Rastafarra ★★★ ()
Последнее исправление: Rastafarra (всего исправлений: 1)

А у вас есть такое чувство? Вам нравится? У вас сложные интересные проекты? Чем вообще занимаетесь?

https://youtu.be/ipxuT5zCG-8?t=4m5s смотри до пятой минуты, ты вот мне напоминаешь этих персонажей

Deleted ()

Все так и есть. Эмбедерство это не совсем другое программирование. Простые структуры, алгоритмы итд. Больше времени тратится на разбирательсво в особеностях регистра или поведения I2C на конектретном чипе, чем в реализации какого-либо крутого алгоритма

vromanov ★★ ()
Ответ на: комментарий от vromanov

а вы пробовали писать не только сам эмбедед, а и сопровождать его выпуск? :) Вот там весело, а писатели поделок пусть и дальше размышляют о смысле бытия.

Morin ★★ ()

Я о подобных задачах мечтаю, работая инженегром в области ЦАП/АЦП на гос. предприятии, большую часть времени застрявая в бумагах, или просто нихрена не делаю, и в редких случаях, которые считаю за счастье, что-то ломается, и начинается веселье. А вы ещё и жалуетесь, что скучно.

Pentium02 ★★ ()

Но просто я как-то глянул как дрова под Linux пишутся и ничего вообще не понял

Так разберись. Это же тоже ембеддед.

Deleted ()

Железо (имею в виду схемотехнику, от которой тащатся многие эмбеддеры, вероятно потому что многие из них изначально радиоэлектронщики) не люблю

А ты возьми и слабай в ltspice или аналоге какуюнить схемку, посчитай номиналы, посмотри как работает, а потом запаяй, это весело
Я вот уже 3 месяца такой фигнёй занимаюсь вместо работы

Satou ★★★★ ()
Ответ на: комментарий от vromanov

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

Morin ★★ ()
Ответ на: комментарий от vromanov

Мы же про интересную работу, а не про то, что - наваял и свалил?

Morin ★★ ()

Можно спросить? В теме не разбираюсь. Как-то хотел за пару часов войти в ембед, прочитал, что AVR отличаются от STM32, тем, что програмирование под последние больше напоминает написание под OS. Что програму для STM32 нужно писать поверх некого слоя абстракции над оборудованием (HAL), который то ли проприетарный, то ли настраивается/загружается только через IDE производителя

Возможно ли нормально писать для STM32 используя только стандартные линуксовые инструменты?

И как соотносятся HAL и FreeRTOS? Что поверх чего? нужно ли первое для второго?

makoven ★★★★★ ()
Ответ на: комментарий от makoven

Возможно ли нормально писать для STM32 используя только стандартные линуксовые инструменты?

можно писать на голом асм.

можно самому все регистры дергать из сишечки.

можно взять всякие готовые библы (HAL к ним относится) и писать с их использованием (они все в исходниках).

а можно взять RTOS и писать уже поверх нее.

никаких ограничений и огороженности.

yax123 ★★★ ()

Вот и весь мой эмбеддед.

Все так. Хотя если иметь ввиду не эмбедед а решение задач при помощи эмбедеда, то все становится не так грустно. Интересны все таки предметные области, а не двабайтапереслатьпоspi. Если живешь в мск, готов подкинуть предметных областей (в смысле трудоустройства).

yax123 ★★★ ()
Ответ на: комментарий от yax123

А как все-таки в эту картину мира вписывается HAL?

makoven ★★★★★ ()

Возможно я просто не сталкивался со сложными задачами. Возможно две работы - это небольшой опыт и много чего я не видел.

Так и есть :)

Возможно разработка в эмбеддед и под всё остальное сейчас на самом деле не сильно отличаются.

Скорее сейчас тенденции такие, все больше и больше становится похоже одно на второе.

У меня такое чувство, как будто программистская/CS жизнь проходит мимо меня. ИИ, анализ данных, современные языки программирования и многое-многое другое. Я и не спец по какой-то инженерной области, и не программист.
А у вас есть такое чувство? Вам нравится? У вас сложные интересные проекты? Чем вообще занимаетесь?

Тут наверное стоит сказать, что это справедливо для любой сферы. Пока чувствуешь постоянно себя недоучкой некомпетентным в вопросе - развиваешься. Как только начинаешь ощущать себя б-гом - значит пора осваивать что-то новое, менять образ жизни, выброситься из окна или просто протрезветь.

Чем вообще занимаетесь?

Свой небольшой свечной заводик по разработке и внедрению встраиваемых решений.

Oberstserj ()
Ответ на: комментарий от makoven

А как все-таки в эту картину мира вписывается HAL?

Эм...а почему бы и не вписываться? Практически библиотека. Или ты о чем?

Oberstserj ()

А у вас есть такое чувство? Вам нравится? У вас сложные интересные проекты? Чем вообще занимаетесь?

Мне уже embedded надоел (за 5 лет). Писал под всякие linux'ы под разные роутеры, ТВ приставки, etc.
Вот хочу сейчас податься в backend (Golang) или DevOps (правда, скилы еще нужно качать и качать).

joy4eg ★★★★★ ()
Ответ на: комментарий от makoven

HAL похволяет писать одинаково для разных семейств микроконтролеров. также часто к HAL прилагается утилита, которая позволяет настраивать выводы, параметры для разных устройств типа UART, SPI, i2c, etc. для STM32 это CubeMX, для Hercules - HalCoGen итд

vromanov ★★ ()
Ответ на: комментарий от vromanov

для STM32 это CubeMX, для Hercules - HalCoGen итд

для Infenion - DAVE

yax123 ★★★ ()
Ответ на: комментарий от vromanov

Родной HAL мне показался _слишком_ громоздким. Эти монструозные конструкции конфигурирования периферии. Код с libopencm3 смотрится лаконичнее, да и в целом, писать код приятней.

Pentium02 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.