Задать вопрос
  • Каков путь развития электронщика-любителя?

    @Mirn
    1. Устроиться на гос предприятие именно в качестве программиста контроллеров - станешь мастером на все руки. от фотошопа и дизайна программ, то технолога сборочного производства и программиста МК, ПЛИС и аналоговых систем, и изучишь всё и получишь опыт.
    2. С опытом легко устроиться к хорошему частнику (от .150тр в случае МСК) - там ты сможешь поднакопить денег для пункта №4.
    3. Изучать параллельно ин.яз. и английский
    4. Свалить из страны (с каждым годов в сфере производства электроники всё хуже и хуже, кадров мало и даже учиться скоро станет не у кого, перспективы только очень плохие). И получать смело от 5т баксов в год.

    Паралелльно пункту 2 так же можно съездить пожить пару месяцев там куда собираешся - осмотреться, попробовать как турист например.
    Так же частникам нужны результаты - значит отправят в коммандировку или на стажировку - ещё плюс к английскому.
    Так же рекомендую школу ин.яза в целевой стране (лучше совместить с их ВУЗом) - это минимум 6 месяцев форы на поиск работы там.

    Ну честно не вижу перспектив у инженеров у нас сдесь, поработал с зарубежом ... теперь от всех наших просто рвотный рефлекс. Да и по разговорам с коллегами их нет и явно не будет в ближайшие 10 лет.
    Очень сильно не хочу бросать друзей и уезжать но так жить нельзя.

    Другой вариант - не ездить и не думать о развитых странах ВООБЩЕ. Привыкай тут и останавливайся на пункте №2.
    Ответ написан
  • Как передать данные через аудиоразъем?

    @Mirn
    однозначно второй вариант "микроконтроллеру добавить сд карту памяти" лучше и предпочтительнее раз возникают проблемы просто с получением звука, и поэтому в реализацию звукового ФСК модема лучше даже не суваться.

    Примеров с СД карточкой море. Но раз не указано на чём делаешь, ардуино/стм32 и тд то ничем помочь не могу. Советую гуглить согласно своей платформе. СД карточки разжованы донельзя, "припаял 10 проводков, скопировал готовый пример и сразу всё заработало" такие примеры из разряда находятся сразу и надо незнай кем быть чтоб их не найти.
    Ответ написан
  • Как сделать декомпилированный код нечитаемым?

    @Mirn
    как вариант реализовать как можно больше кусков кода например в базисе "и-не" без ветвлений на базе битовых масок например.
    выйдет просто адовая каша, но падение производительности раз в 100.
    Ответ написан
    3 комментария
  • Откуда начинается стек у STM32?

    @Mirn
    в современных и вменяемых средах разработки всё задаётся явно прямо в исходниках и сразу видно где например лежит стек и как он подключается при запуске через таблицу прерываний.
    вот например смотри мою минимальную прога на нормальном Си в нормальной среде разработке, которая уделала все извращения на асме что были в статье.
    https://habrahabr.ru/post/274901/#comment_8738493

    расшифровываю
    __attribute__ ((section(".co_stack"))) - это атрибут заставляет положить массив для стека в секцию с именем .co_stack, а далее в LD файле (задаёт порядок компановки секций в прошивке и управляет адресами что куда ложить) указывается что эта секция должна идти после секции данных

    __attribute__ ((section(".min_isr_vector"))) - таким же образом даёт имя min_isr_vector, а в ld файле указывается что эта секция первая в прошивке и всегда идёт с адреса 0х08000000.

    стеку не нужна уменьшать на Х значение, если память заканчивается на 2020000, то в SP можно запихать 2020000. Потому что при команде push В НАЧАЛЕ уменьшается значение SP а потом уже кладётся по этому уменьшенному значению сохраняемые данные.
    Да и SP указывает на память и обязано быть кратным 4 (машинному слову, 20000FFF недопустимо!)

    Извините но Иар и Кейл не очень среды (но компиляторы в них хорошые, да), и поэтому надо пользоваться вменяемыми и не устаревшими в 90ых годах инструментариями. Тогда и вопросов не возникнет. вот в эклипсе с плагином CDT для си и с++ во всех примерах сразу сделано нормально выделение стека. А в последних вообще идеально. В Attolic и всяких RED от NXP так же хорошо всё сделали нарпимер, так что выбор среды по душе не проблема, надо только захотеть ;)
    Ответ написан
  • Фриланс, системное программирование и контроллеры?

    @Mirn
    в этом деле чертовски важен опыт инженера, а не ИТшника.
    т.е. знать что и как и что в реале работает и какие случаи бывают.
    поверь, ардуино это stickman, даже не каркас а один иероглиф будущей многотомника.

    очень частот требуется спец например в двигателях, и без наличия на месте и опыта никто не пустит по объективным причинам: ты его сожжёшь, а стоить может и лям и выше.
    часто надо посмотреть сигналы, самому поударять по плате, пальцем провести и тд
    поэтому физ наличие очень рекомендовано

    Мой совет - иди в гос-шарагу, типа радиозавода местного. Но только туда где реально есть полноценное конструкторское КБ и разработки свои. Получишь там опыт и пару грошей на пиво не более. (студентов там за мусор считают).
    Параллельно можно пилить что нибудь своё. умный дом например, или для авто приблуду.
    Пытаться это пиарить, писать статьи в начале в радиокота, потом на изи, потом на хабр - будут критиковать и получишь практ опыт чужих людей. Ну и свой если дело дойдёт до прототипа и запуска его.
    Вполне реально научиться вести самому разработку, совершенствовать и продавать ни от кого не завися. примеров на хабре много DiHalt например.
    Ответ написан
    Комментировать
  • Программирование МК, ASM действительно на 30-40% эффективнее Си?

    @Mirn
    это не правда,
    делая отлично всякую мелочь ручками на асме упустишь всё остальное, т.к. оптимизируешь что-то одно, а в целом выйдет коряво.
    Современные же компиляторы и в целом и в частностях срабатывают получше людей, они делают хорошо сразу всё, пусть не идеально но сразу всё хорошо. Т.е. может один вызов или цикл сделают на 1-2 такта побольше и на пару байт побольше человека, но в общей картине выходит порой В РАЗЫ меньше и быстрее чем человек.

    Высказывание автора про 30-40% хуже можно объяснить только тем что в начале 2000ых для МК компиляторы были не развиты. Теперь же на арм gcc выдаёт отличный код который уделывает даже мастера асма который старался написать минимальную прогу на асме и доказывал что только на нём это можно сделать.
    НО я взял просто gcc и просто и тривиально в лоб написал прогу и она сразу вышла меньше чем результат его статьи
    https://habrahabr.ru/post/274901/#comment_8738493

    вывод: упор на асм и такие заявления в современном мире равноценны признанию в своей некомпетентности.
    А асм сам выучится по практике. главно на СИ уметь писать хорошо и знать язык и компилятор отлично.
    Одним Си обойтись можно. И даже нужно! Хотя-бы потому что надо в начале изучить что-то одно а не научившись ходить записывать в мировую олимпиаду. Многие люди кодят на си не зная асма и проблем не имеют ни с быстродействием нисчем другим.
    Ответ написан
    1 комментарий
  • Изучение С для программирования микроконтроллеров?

    @Mirn
    Внимание: Всё что пишу, пишу про голое железо или простые RTOS (стм32 и тд)

    Это программирование делится на три части:
    1. Это железо! С железом проблем нет, читаем мануал, используем рекомендуемую производителем железа библиотеку по работе с железом получаем гарантированный результат. Трудно будет только по началу. Но это опыт наживной и относительно лёгкий.

    2. Реалтайм и инженерное мастерство и инженерный опыт: Часто проги под МК работать будут в реальном времени налету, ждать никто не будет. Дважды измеренная величина всегда будет отличаться, произойти может что угодно и в какой угодно последовательности. Клоки и тактовая плавает. Количество переданных и принятых данных всегда будет разное даже по одному и тому же уарту. Всё это должна учитывать ТВОЯ программа и не падать при любом раскладе. Как видишь программа будет иметь дело с гораздо большим количеством случайностей чем при программировании в вебе/ПК и повторяемости событий почти не будет. И надо быть чуточку инженером и знать что у всего с чем работаешь есть отклонения и шум в результатах, особенно аналоговых и АЦП.

    3. Это программирование на Си как обычном языке. Тут всё просто и понятно, мануалов море - выбирай по вкусу и цвету.

    4. ОБЩЕЕ АЛГОРИТМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ. Неважно что это железо но алгоритм оптимально но не слишком перфекционистки. Ты должен реализовать и язык тебе тут не поможет, он не связан с алгоритмом и наборов удобных библиотек гораздо меньше чем под ПК и веб.

    5. НЕ УЧИ АССЕМБЛЕР. не углубляйся в схемотехнику, достаточно будет уровня уверенного ардуинщика. Ассемблер сейчас нужен не для написания программ а вылизывания отлично сделанной проги которая уже продаётся но нужно выжать ещё 5-10% быстродействия, ТОЛЬКО ТОГДА. Всё остальное делается либо конфигами либо LD файлом линкера. Дебри схемотехники тоже не нужны, главное понимание как и почему это работает, без всяких четырёх полюсников и глубоких анализов фазовых задержек.
    Ответ написан
    4 комментария
  • Arduino Как из получаемой веб страницы выделить основную часть?

    @Mirn
    искать две пустых строки друг за другом
    и после них уже полезная нагрузка
    dvwviWq.png
    Ответ написан
    Комментировать
  • Как устранить шумы усилителя?

    @Mirn
    есть простейший способ узнать что шумит: сделать аудиощуп.
    Это в простейшем случае подключить через конденсатор около 10мкФ наушники. Один провод на землю, а два других (левый и правый) соединив вместе через этот конденсатор к щупу осциллографа и им тыкать в разные точки схемы. Но лучше делать через усилитель звука с развязанным питанием, например старый плеер от батареек с микрофонным входом.
    При помощи этой штуки можно разделить мухи и котлет: встать на питание и проверить чтоб оно не шумело, или встать на прямой и инверсный вход ОУ и послушать его, если шумит то надо уменьшить сопротивление входа (если 50 герц) или повесить кондёр если вч шумы и тд
    Ответ написан
  • Stm32 SPL или Регистры?

    @Mirn
    SPL
    плюсы:
    1. Приемлемый уровень абстракции между разными камнями и семействами, есть мануалы как переводить софт с одного на другое семейство стм32 и в них описан ТОЛЬКО SPL
    2. Он понятнее чем запись в регистры, особенно если нужно наработки использовать потом через пару лет или другим человеком.
    3. Сама фирма производитель тестировала чипы именно на SPL и значит порядок работы с периферией что заложен в SPL даст существенно меньше глюков чем любой другой.
    4. В SPL интуитивно понятный и можно писать "на деревню дедушке", т.е. DAC_deinit() например зная что ADC_DeInit() существует значит и другое есть
    5. В SPL всё таки много наработок - в множестве функций есть очень тонкие моменты и ньюансы которые уже сделаны и при работе с регистрами на них точно напорешся и потратишь не одну неделю.

    МИНУСЫ:
    1. SPL медленный, особенно ножкодрыганье - но он для этого не предназначен вообще то и ждать от него скоростей в пару тактов глупо. Да и для 99% задач SPL достаточно быстр. Как решение проблемы использовать побитовый доступ для ножкодрыгания, или один раз через SPL настроил что надо, сохранил все значения регистров в временные переменные и одним memmove просто скопировал в блок регистров сразу всё - максимально быстро особенно для ДМА которой надо дофига всего сделать.
    2. SPL толстый - жрёт много флеша, решается сия проблемма превращением части функций в инлайн вариант, тогда отпадают все проверки для всех блоков переферии и код уменьшается в 3-5 раз но только если он использован разово. Можно напороться на особенности инлайн функций и прочие недостатки. Но для 99% задач размера флеша хватает и садить SPL на диету не нужно или просто глупо.
    3. код SPL громоздкий ... ну вы батенька WinAPI не видели и другие высокоуровневые языки.
    4. SPL написан с учотом что кодить на нём будет профессионал Си и такие ляпы как забыть очистить структуру от мусора стека подразумевается что профессионал не сделает, но если новичок допускает их то сам дурак и можно долго на форумах вонять что SPL гавно - руки от этого не выпрямятся.
    Ответ написан
  • ПЛИС, в каком сейчас состоянии?

    @Mirn
    Знать МК и ПЛИС на порядок лучше чем просто МК. При помощи ПЛИС подключенной к МК можно существенно быстрее и лучше делать сложные проекты в которых нужно управлять чем то сложным или быстрым или где нужно множество выводов (более 100шт например) и тд. Таким образом такой разработчик может сделать почти всё что связано с железом ... (за исключением того что связанно с сетями езернет и инетом - для этого нужны одноплатные ARM Cortex Ax с полноценным Люниксом и полноценными сетевыми протоколами).
    Даже простую периферию чаще проще и быстрее сделать на плис чем разбираться с таймерами, ДМА и тд
    Но это дороже и плата болше, зато разделение хорошее - плис дёргает ножками и делает реалтайм, а МК считает и управляет и дёргает низкоскоростным или не реалтаймовым железом как дисплей, кнопки и тд
    Более того такой разработчик по факту становится незаменимым ... а это в какой то степени и минус - уйти в отпуск почти невозможно, а з/п редко когда могут поднять - часто денег нет и з/п уже максимальная на предприятии.
    Ответ написан
  • Есть ли в области системного программирования такие задачи, для которых целесообразно только использование ассемблера?

    @Mirn
    в микроконтроллерах АРМ асм тоже не нужен: есть хорошие компиляторы и оптимизаторы типа gcc, keil, iar. Есть библиотеки с готовыми асм вставками от производителя проца - арм консорциума. Итог писать на асме не нужно никогда и ничего. Очень и очень иногда использовать спец либы ДСП может да, с стилем "псевдо-ассемблер на си" когда инлайн-функциями записаны асм команды обрабатывающие вектор. Но обычно уже все свёртки, фурье и тд очень быстрый уже есть. И оптимизировать там - всё равно что биться голой об стену и воевать с компилятором насколько близко ты его догонишь.

    Но если так хочется:
    Есть соглашения как писать ассемблерный код, какие регистры волатильные какие нет, как организовывать стековый фрейм и тд и тп. И если всего этого придерживаться, то выйдет очень долго и нудно, а результат очень сильно разочарует.

    Да раньше для арм МК писали на асме код запуска, куски RTOS, обработка исключений, но с освоением кортекса, формата LD и секций gcc даже это стало не нужно вообще.
    За свою практику (7 лет на арм) я ни разу на асме не писал. Нужно быстродействие - ставь FPGA.
    Ответ написан
    Комментировать
  • Куда идти: радиоэлектронщик или веб-программист?

    @Mirn
    возьми да совмести: сервера на старшых МК типа STM32F7xx
    с руками отрывать будут и те и те.

    а если осилишь серверы на плисинах - вообще агонь будет, хоть с работой совсем туго (ты прав, электроника в развале у нас), НО ты сможешь делать самые производительные решения какие только можно делать вообще и никакой nginx рядом не стоял: это будет хардкор в области hi-load (зарплата от 200тр и выше, а задачи самые наикрутейшие)
    Ответ написан
    5 комментариев
  • Возможно ли починить процессор?

    @Mirn
    это конденсатор скорее всего 0201 типоразмера.
    Подобрать может быть и реально, но долго.
    Скорее всего большой ёмкости, и lowESR.

    НО скорее всего проблема не в нём.
    Потому что это скорее всего кондёр по питанию и их там должно быть много параллельно подключено, и +-1 шт влияет на стабильность.
    Хотя может повести и это конденсатор на другие критичные цепи типа ФАПЧ - тогда и заработает, но тогда нужно точно знать все его параметры, а это уже пальцем в небо.
    Ответ написан
    9 комментариев
  • Разработка электроники VS веб-разработка: куда податься?

    @Mirn
    Сам занимаюсь программированием для железок и для ПК в том числе.
    Работаю в фирме а так же делаю свои "умные" часы в свободное от работы время. И вижу чего добились другие так же, и вижу что большинство успехов связано либо с железом либо с совмещением железа и софта. Никому не нужен пятсотпервый ещё один "классный архиватор", но все хотят какие нибудь качественные и надёжные гаджеты, предметы, и просто порой качественную мебель которая не пахнет и не токсична (для детей). Все устали от китая, очень устали, не везде есть икея.

    Если делать свой бизнес то по-моему только связанный с товаром или электроникой.
    Для этого даже не нужно сильно дорогое оборудование, на работе стоит из дорого осциллограф лекрой за 300к, и отладки для ПЛИС за 30к. Но можно вполне спокойно найти usb осцилл за 20к уже приличный, остальное на 10к потянет.

    У электроники ещё есть плюсы:
    1. Однозначно проще веба
    2. Реально сделать что-то самому.
    3. Реально растиражирвать и получить прибыль быстро, и вложить её в развитие.
    4. Среда в которой крутится твой код не поменяется если сам не сменишь МК/ПЛИС/Распебри/Ардуину. Поэтому сойдёт даже быдлокод - главное чтоб у клиента работало,
    5. Поэтому можно быстрее проверить чем веб.

    Двоём даже можно сделать такое:
    https://www.youtube.com/watch?v=gnjd8yujyKE
    https://www.youtube.com/watch?v=J6XkECIYV3I
    Мы сделали за три года, тратя в среднем 2 часа в день.

    PS. "-малое количество компаний, отрасль слабо развивается" - это плюс, ниша не занята, дерзай! Делай!
    Ответ написан
    1 комментарий
  • Где найти специалиста по микроконтроллерам?

    @Mirn
    Можно попросить / нанять тут:
    electronix.ru/forum/index.php?showforum=24

    Ну а в общем вот:
    electronix.ru/forum/index.php
    Ответ написан
    Комментировать