Comments 38
я в свою "систему автоматического бэкапа рабочих файлов" специально добавил фильтрацию расширений большинства артефактов поскольку их легко востановить
а вот промежуточные версии просто архивирую вручную всю папку проекта со всеми файлами, и вот эти архивы та же бэкапилка сохраняет
с учетом того что в бэкапилке есть еще версионность....
Я тоже не архивирую *.о *.d *.lst *.i *.su *.pp файлы. Это промежуточные данные.
Я архивирую только то, что нужно для отгрузки: *.bin *.hex *.map *.elf + *.svg файл с деревом зависимостей программных компонентов
Генерация зависимостей внутри программы
https://habr.com/ru/articles/765424/
а почему не решать эту задачу путем ci job artifacts?
заодно исчезнет привязка к винде (tar.exe) и к makefile. появится ссылка на коммит, из которого были сделаны артефакты
Тот же CI в jenkins вынуждает прописывать вручную список файлов для каждой сборки. А в make код формирования архива сосредоточен в одном месте.
А чего бы не CMAKE использовать?
Внимание, дальше токсичный комментарий, который написан не с целью возвысится, а с целью заставить задуматься.
Статья - иллюстрация того почему embedded плохо оплачивается. В этом деле уже через пару недель легко словить звезду, потому что большая часть проблем можно решить без интернета, только читая документацию (сам таким был). Становится ощущение что ты можешь всё, ты особенный и можешь добывать решения только выковыривая их из носа. А программисты микроконтроллеров это отдельная каста и на них современные методы разработки не распространяются.
На самом деле суровая правда - большая часть эмбеддед разработки это разработка уровня 199x годов. С плохой коллективной работой, с плохой передачей знаний, с очень низкой эффективностью и с некачественной кодовой базой.
Правильное решение для документооборота должно быть, как и везде сейчас, что-то типа GIT + Jenkins + GitLab + Jira
(последний раз такой колхоз я видел в 2005 году и примерно тогда же перевел всех на SVN)
с некачественной кодовой базой.
Что является атрибутами качественной кодовой базы?
Правильное решение для документооборота должно быть, как и везде сейчас, что-то типа GIT + Jenkins + GitLab + Jira
Я работаю в embedded. У нас сейчас есть GIT, Jira и Jenkins (правда Jenkins крутится пока только на локальном PC)
на них современные методы разработки не распространяются.
Что Вы вкладываете в понятие "современные методы разработки"?
Из личного опыта - соотечественники делятся разработанными прошивками приложением zip архива к сообщениям (на форуме с самописным движком). Новая версия - новый архив. Бывает код прям кровь из глаз. Или в размеренное обсуждение на eevblog врывается соотечественник с фотографиями экрана осциллографа с метрового расстояния и карандашными рисунками схем.
карандашными рисунками схем
Современных российских инженеров электронщиков надо обучать самым базовым основам компьютерной графики.
Чтобы умели пользоваться хотя бы программой inkscape.
Или в размеренное обсуждение на eevblog врывается соотечественник с фотографиями экрана осциллографа с метрового расстояния
Дело в том, что на многих российских предприятия часто можно встретить аналоговые электронно-лучевые осциллографы и там просто нет USB порта, чтобы установить USB накопитель. Вот и приходится фотографировать.
Из личного опыта - соотечественники делятся разработанными прошивками приложением zip архива к сообщениям . Новая версия - новый архив.
А как по-вашему следует передавать прошивку для платы, если не архивом через messenger? Всегда и везде же так делают.
Ошибся, хотел сказать "исходники прошивки". Особое удовольствие ее искать в обсуждении на тысячу страниц, в двух-трех частях. Один что-то свое добавил, кто-то другое, сиди несколько вечеров, ковыряй. Системы контроля версий уже наверно даже в школе проходят (шутка).
с плохой передачей знаний
Пишите заметки на habr вот и будет Вам работать передача знаний.
Статья - иллюстрация того почему embedded плохо оплачивается
Вовсе не по этому. Просто специфика разработки электроники такая.
В разработке прошивок в принципе не может быть никакой монетизации, как в Web сайтах. Никто не будет вам платить 10$ в месяц за аккаунт в прошивке. Это было бы ну просто смешно.
Цена прошивки без физического устройства 0 рублей 0 копеек. Продажи прошивок жестко ограничены продажами электронных устройств, которые крутят эти прошивки. А количество электронных устройств жестко ограничено производственными возможностями конкретной организации. При этом в России нет массового производства никакой электроники. Просто былая промышленность СССР утрачена, продана, угроблена.
В нынешних российских электронных организациях как правило мелкая серия электроники 100..500 штучек чего-либо за весь жизненный цикл продукта. Причем сами электронные платы обычно паяют в подвалах вручную 2...3 тётушки бальзаковского возраста. Выглядит всё это очень удручающе. В yield(де) как правило 60% брака. Сами понимаете, что много народных гаджетов так не наклепаешь.
При этом стоимость конечного российского изделия на MCU (какой-нибудь пресловутый СКУД) редко превышает 10k...30k RUB.
Вот ещё, например, компания ГК Телесистемы, которая сделала на микроконтроллере крутой нишевый диктофон и страдает от того, что продажи слишком низкие, и невозможно инвестировать в развитие и рост организации и повышение зарплаты программистам. https://habr.com/ru/articles/822375/
Ну сами представьте, сколько может стоить работа по написанию I2C драйвера для микросхемы AT24C02M5 стоимость которой 11 рублей (0,12 USD)? И какое отношение у предпринимателей к такой работе?...
Поэтому программисты микроконтроллеров - самые низкооплачиваемые программисты в России 42k..70k RUR/меc, работающие в массе своей за идею.
Просьба относиться к этому с пониманием...
Добрый день. Хочу написать коментарий с несогласием с вашими выводами о причинах низкой оплаты embedded. На мой взгляд причина в том что embedded это крайне рискованная ниша. Потому что в большинстве случаев требуется сразу сделать готовый продукт без багов и учесть весь функционал - обновление железа точно не сделать по ci/cd а бывает что и прошивку не передать на конечное устройство. А это очень не просто. Даже если сделать все достаточно хорошо - нужно ещё продать. Тут наслаивается слабость бизнес культуры на всем постсовковом пространске и высокая конкуренция со стороны западных стран - фирм, которых уже позанимали все сладкие места в продуктах нужных всему миру, у которых налажен процесс работы, сбыта продукта, инженерии, есть финансы для R&D и экспериментов - ведь не факт что всегда получается и небольшая молодая компания может просто разориться если вложит в провальный продукт, и так не большие ресурсы. В сегменте массово и дешего доминируют китайские фирмы - у них дешовые ресурсы и опыт масштабирования.
Итого остаются проекты где то по середине, обычно они не самые лакомые с точки зрения денег и ввиду необходимости продавать, опыта в чем нет/мало и без ресурсов на маркетинг, остается только работа на локальный рынок для дяди пети, которого ещё попробуй уговори что-то купить. У дяде Пете часто ваш этот интернет ***** не нужон. У него есть баба клава и вася которые будут все руками делать. Потому что уровень конкуренции и как результать уровень культуры/автоматизации производства, обычно не высокий.
На это все накладывется изоляция из-за мудрых решений - конфликтовать с теми с кем нужно налаживать связи и торговать.
Итого embedded тут находится в условниях - когда инвесторы предпочитают более простые и менее рискованные вложения т.к. ещё не все низко висящие яблоки сорваны, проблема с кадрами и процессами, высокая конкуренция на мировом рынке.
Как результат ЗП низкие потому что доходы низкие и нет конкуренции за кадры.
Что касается совковой промышленности то тут я думаю проблема в том что производили оружие, а когда он развалился оказалось что в условиях когда люди могут хотя бы от части выбирать на что тратить свои средства, ни кто не хочет тратить на оружие по 40-60% своего бюджета. Что логично, на мой взгляд.
В любом случае со временем будет все меньше возможностей инвестировать в простые бизнесы, накопиться культура предпринимательства, конкренция вырастет - будет больше хорошо оплачиваемых вакансий в мире embedded. Но вот когда это наступит - я вам не скажу. ))
и высокая конкуренция со стороны западных стран фирмы из которых уже позанимали все сладкие места в продуктах нужных всему миру, у которых налажен процесс работы, сбыта продукта, инженеров, есть финансы для R&D и экспириментов
Но Россия же не из космоса высадилась на Землю в 1991 году.
Вот только интересно в какой момент Россия повернула не туда и так отстала в HiTech технологиях?
В любом случае со временем будет все меньше инвестировать в простые бизнесы, накопиться культура предпринимательства, конкренция вырастет - будет больше хорошо оплачиваемых вакансий в мире embedded. Но вот когда это наступит - я вам не скажу. ))
Моя ставка: это произойдет в России не раньше чем через 200 лет...
Вот только интересно в какой момент Россия повернула не туда и так отстала в HiTech технологиях?
На мой взгляд с потребительскими товарами всегда было слабо. Если бы не СССР с его плановой экономикой, думаю уже были бы фирмы которые делают то что нужно не для войны а обычным людям. А HiTech обычно это крупные технологические фирмы которым нужны новинки что бы быть их товары были самыми привлекательными.
Но Россия же не из космоса высадилась на Землю в 1991 году.
Конечно не из космоса, но опыта создания потребительских товаров и работы на международном рынке не было. Потому что в СССР за частную инициативу и создание товара или услуги, наступало самое суровое наказание и в целом было не возможно. Мне кажется страны после распада прошли уже не малый путь и снизили отставание по доступности и качеству разных товаров и услуг, по сравнению с самыми развитыми мировыми центрами. Уже все не так плого как в 91 году. Если не делать всякие глупости а направить ресурсы в сторону развития, на улучшение качества жизни то ещё пару десятилетий и уже не будет существенной разницы по качеству жизни. Тому пример китай, хоть и диктатура но ввели много аспектов из свободной экономики и уже шутки про голодающих китайцев не уместны, у них средняя ЗП выше чем в РФ.
Моя ставка: это произойдет в России не раньше чем через 200 лет...
Тут конечно возможны разные пути развития особенно сейчас. Имхо от каждого зависит - будем мы торговать со всем миром и участвовать в кооперации или делать глупости.
но опыта создания потребительских товаров и работы на международном рынке не было.
Но СССP поставлял на экспорт самолеты Ан-32 и Як-42
https://www.youtube.com/watch?v=CRy1a7qKLmo&t=10s
но опыта создания потребительских товаров и работы на международном рынке не было
Был опыт. СССР поставлял на экспорт корабли на подводных крыльях: Ракета и Метеор
высокая конкуренция со стороны западных стран - фирм, которых уже позанимали все сладкие места в продуктах нужных всему миру, у которых налажен процесс работы, сбыта продукта, инженерии, есть финансы для R&D и экспериментов
Да есть такая системная проблема.
В России не выгодно делать разработки новых продуктов. Проблема в том, что рынки давно заняты и переделены.
Все комплектующие импортируются. Цены на них таковы, что при таких ценах любой товар разработанный в России получается нежизнеспособным. Слишком дорогим.
——————————————
Выход вижу такой.
Поделить весь мир на две экономические зоны. Две капиталистические экономические системы.
В одной останется весь Западный цивилизованный мир, а во втором Россия и все её союзники ( если таковые конечно найдутся).
Затем оградить всю Россию по периметру железобетонной стеной, с электротоком, минными полями, работающими магнетронами, радиоактивными изотопами.
Перекрыть импорт и экспорт.
И развиваться полностью автономно, без обмена материей и информацией с остальными окружающими государствами. Расти медленно, как дерево. Тогда со временем Россия сама пере изобретёт все западные товары и население не будет прозябать в безработице, а инженеры всегда нужными и пристроенными.
На самом деле суровая правда - большая часть эмбеддед разработки это разработка уровня 199x годов.
На самом деле это даже достоинство! Консерватизм!
В профессии программист МК, как в деревне ничего не меняется десятилетиями! Буквально сквозь века (XX-->XXI век).
Си - самый древний язык из тех, что всё еще активно используются. Си(шнику) как и Make(у) уже более 50 лет!
Постоянный консерватизм в наборе технологий. Что в 2011 в военном НИИ мы программировали Cortex-M3 в IAR на C с классами для БМП-3, так и c 2021(го) в яНДЕКС.драйв всё так же программируют Cortex-M3 в IAR на С c классами для телематики таксопарка.
Поэтому эта работа идеально подойдет для тех кто не очень-то хочет непрерывно доучиваться всяческим погремушкам.
Обычно в этой профессии кристаллизируются вчерашние ВУЗ(овцы), которые ещё не поняли, что вовремя переметнуться в Java/Python разработку - это лучшее, что может с ними случится в жизни, и много пенсионеров, которые уже просто не могут освоить что-то ещё другое. Ибо с возрастом утрачивается способность мыслить последовательно.
С плохой коллективной работой, с плохой передачей знаний, с очень низкой эффективностью и с некачественной кодовой базой.
Чтобы этого не происходило надо всего-навсего устраивать ежедневные 7минутные планерки.
разработка уровня 199x
Только вот почему то то что делали в этих годах работает до сих пор, причем летает на процессоре 2МГц, в то время как разработанный по всем правильным методам современный "продукт" тормозит даже в обычном меню при процессоре 2ГГц
Вы по одному автору статьи не судите о всей индустрии. Стиль и задачи описанные автором, это чисто его проблемы.
Согласен, что высосано из пальца и всё решается куда проще. Но такой уж стиль автора
Правильное решение для документооборота должно быть, как и везде сейчас, что-то типа GIT + Jenkins + GitLab + Jira
У меня Jenkins есть и он тоже архивирует артефакты.
![](https://habrastorage.org/getpro/habr/upload_files/9f2/c3c/015/9f2c3c0155f458ecbc7d1703f73ff969.png)
У меня даже текст про это есть
Запуск сервера сборки Jenkins
https://habr.com/ru/articles/695978/
Я собирал бы примерно таким makefile:
all: $(TARGET).tar
$(BUILD_DIR)/timestamp.txt:
date > $@
%.tar: $(BUILD_DIR)/timestamp.txt $(BUILD_DIR)/%.pdf $(BUILD_DIR)/%.elf
tar.exe -v -f $@ -c $< --
Техникум: Автоматическое Aрхивирование Aртефактов