Я, как уже сформировавшийся железячник, перешёл с готовых микроконтроллеров (RPi pico, stm32 и т.д.) на свои собственные, сделанные на FPGA. Вот где огромная гибкость и мощь! Нужна специфичная периферия? Не беда! Verilog в зубы и вперёд! :)
Сам в свое время занимался ремонтом. Забросил по ряду причин. Это и неадекватные клиенты, и растущая сложность техники и доступность запчастей и низкий доход. Да и времени сидеть и ковыряться нет. Есть личная жизнь, личные проблемы и многое другое. Сейчас если что-то и делать, то в моем случае — это изготавливать всякое железо на заказ. Навыки есть и в схемотехнике и в программировании и с ПЛИСами дружу. Первый удачный опыт был — изготовление новых «мозгов» для старого автопогрузчика «Shtill». Тогда я повторил алгоритмы старых аналоговых «мозгов», изложенные в его сервис-мануале. Как результат, делал мозги для одного заказа, а продал потом 15 таких плат разным заказчикам, по 18 тыр за штуку. Это было оправдано, так как родные мозги были дефицитом и стоили дорого.
От разных заказов остаются и схемные решения, которые можно таскать с проекта в проект, база исходного кода, когда к примеру удачно реализовал КИХ фильтр или обмен данными по UART и теперь таскаешь этот код, что облегчает работу над новыми заказами. Некоторые платы и модули разводишь максимально унифицированно, чтобы результат потраченного времени можно было использовать повторно. Ну и многие другие оптимизации.
Да уж. Бывали у меня на практике такие дырявые сети. Начиная с «невинного» проброса порта RDP наружу и кончая утечкой персональных данных клиентов одного интернет-провайдера, в числе клиентов которого был и я сам.
По-моему, название Putty образовалось из двух слов put и tty.
При слиянии просто последнюю букву первого слова и первую букву второго слова сделали общей. Почему использовали слово put? да видимо от названия С-шной функции putchar(), которая выводит символ в консоль и передвигает «каретку» к следующему знакоместу. (Ну там, еще указатель инкрементируется в буфере.)
Я в свое время тоже не занимался спортом. Ярко выраженного ожирения небыло,
но проблемы со здоровьем вылезли почти аналогичные. Доходило до длительных
депрессий и состояния «туманности сознания». К этому были добавлены еще
сложности в личной жизни и связанные с этим различные проявления комплекса неполноценности. Что тоже нагоняло депрессию. Ну и отсутствие уверенности в себе и своих силах. В один прекрасный день я случайно попал в подготавливающийся к открытию спортзал, в котором по просьбе знакомых нужно было запрограммировать и наладить охранную сигнализацию. Посмотрев на все это «безобразие» в виде различных тренажеров, штанг и гантель, я решил что мне пора подключаться к спорту.
Так я год назад записался в этот спортзал.
Первый месяц мне точно так же хотелось забросить это дело, но я себе в таких случаях
всегда говорил: «Мне тренировки жизненно необходимы, так как это решит огромную часть моих проблем. Как бы не хотелось, но я просто обязан во что бы то не стало.»
Спустя три месяца, занятия вошли в привычку и стали частью моей обыденной жизни.
Продолжать ту жизнь мне очень не хотелось, что и послужило мотивацией.
Чтобы не терять мотивацию, связанную со слабым прогрессом в первые три квартала тренировок, я всегда себе говорил: «Ну а что ты хочешь от организма, никогда не занимавшегося спортом? Организму нужно время, чтобы понять, что физические нагрузки теперь будут действовать на постоянной основе и перестроиться.»
И вот через год занятий прогресс в тренировках ускорился. Организм адаптировался и тренировки стали гораздо продуктивнее.
Решил ли спортзал мои проблемы? Да, решил. И останавливаться я не собираюсь. У меня все только начинается. Жизнь качественно улучшилась. У меня пропали все проблемы с сердечно-сосудистой системой. Я сбросил вес на 10 килограмм. Сначала сбросил с 96 до 84 кг, потом набрал 3 кг мышцами. Мозг стал очень хорошо работать. У меня появилась уверенность в себе. Изменился характер. Заметив все эти положительные изменения, я решил, что от спорта я уже не уйду. Он стал моим третьим хобби. Так я подписал себе спортивный приговор. :)
Считаю, что спорт просто необходим всем, у кого образ жизни не является физически активным. Выделить себе три дня в неделю, по два часа на занятия смогут многие. Зарплата программиста не является такой низкой, чтобы было проблематичным вписать в бюджет абонемент в спортзал.
Там бывают косяки, но это всё же лучше, чем иные варианты. Arduino IDE слишком простая для программиста, работающего в нормальных средах. Лично мне неудобно работать в Arduino IDE. Там нет даже банального «дерева файлов проекта», позволяющего переключаться между файлами исходников гораздо оперативнее, чем шариться по вкладкам. А вот Visual Studio Code уже намного более удобная. Я уже не говорю о таких уже привычных вещах, как IntelliSense. Впрочем, грех жаловаться на то, что было придумано для совсем начинающих.
Сам-то я о платформе AVR и PIC давно уже забыл и в основном у меня используются STM32, которые программирую в IAR. STM32 я достаточно хорошо знаю, на них есть практически вся документация. Но ESP8266 с их SDK… Помоему, даже SDK для ESP32 гораздо проще в использовании.
Свое знакомство с ESP8266 я тоже начал с NodeMCU, так как с Lua знаком давно. Ибо их SDK уж точно не подходит для «быстрого старта». Но на Lua более-менее сложный проект не напишешь. ОЗУ маловато. Один из проектов упорно не хотел влезать в память даже несмотря на ухищрения, вроде запуска уже скомпилированных скриптов и разбития кода на множество файлов. Тогда я начал искать альтернативы прямого программирования посредством SDK и решил использовать PlatformIO в связке с Arduino framework. Решение получилось хорошее, так как становятся доступными различные библиотеки, среди которых есть хороший асинхронный веб-сервер, позволяющий создавать веб страницы по-взрослому. То есть, размещать весь веб-контент в виде файлов в SPIFFS и пользоваться аналогом Апачевского mod-rewrite. Плюс кодинг на C++ последней редакции стандарта. Этот проект был переписан на C++, наворочено функционала даже больше, чем было, а края ОЗУ даже и близко не видно.
Я такой купил на всем известной торговой площадке Китая. У него была проблема. Штатный драйвер гнал Win10 в BSOD при попытке обращения к устройству. Я тогда порывшись на Github, нашел исходники бластера на STM32. Адаптировал код под железо этого адаптера и всё взлетело.
Начиная с отрицания «войны с Россией» и запрета называть это «гражданской войной» в этих ваших Украинах и заканчивая уголовной статьей за отрицание «советской оккупации» в этих ваших Латвиях. Если хорошо поискать, то можно найти такое в Польше и прочих странах ЕС. На волне современного всемирного политсрача, власти многих западных стран порой настолько потеряли берега, что изначальные ценности демократии потеряли всякие смыслы и извратились до неузнаваемости.
Я для работы с UART никогда не использовал кольцевые буферы. Брал просто один буфер и скармливал его коду, отвечающему за приём данных по прерываниям. Если там использовались маркеры начала и конца пакета, то это дело сразу проверялось, чтобы уложить пакет в буфер и определить признак его конца. Но чаще всего я использовал таймауты между приёмами байтов в качестве признака конца пакета. В кольцевом буфере не вижу смысла, так как если программа не успевает обработать пакет, то кольцевой буфер ей не поможет, но код из-за него усложняется. В задачах приема данных по UART двойной буферизации хватает за глаза. Код проще и занимает меньше места.
По поводу китайского производства (не важно чего, железа или софта) я знаю так:
Что заказчика интересует, то они и сделают. Если заказчика интересует в первую очередь цена вопроса, то они эту цену обеспечат. Тогда качества не жди. Если заказчика будет интересовать в первую очередь качество, то качество он получит, однако это будет стоить совсем других денег.
И тем не менее, в различных цивилизованных демократиях и околоцивилизованных околодемократиях существует множество законов об уголовной ответственности за отрицание чего-либо. В России о таких законах я пока ничего не слышал. Разве что нечто подобное может встречаться в статьях, связанных с такими вещами как терроризм и экстремизм.
Я сторонние библиотеки использую с максимальной осторожностью. Если предполагается, что библиотека глубоко интегрируется в приложение, то лучше написать обёртку над ней с более удобным API. Тогда её вытряхивание из проекта не станет болью. Достаточно будет изменить только код обертки.
На счет «полвека пути, который Китаю не пройти за более короткое время» у меня есть сомнения. Тогда и научной базы было меньше и технологии были хуже. Сейчас Китаю не нужно переоткрывать всё это заново и проводить сильно масштабные исследования. Все это уже было проделано теми же США и Японией. Да и общие принципы современной фотолитографией уже известны. Сейчас нужно только найти необходимые инженерные решения, которые позволят производить чипы по целевому техпроцессу.
От разных заказов остаются и схемные решения, которые можно таскать с проекта в проект, база исходного кода, когда к примеру удачно реализовал КИХ фильтр или обмен данными по UART и теперь таскаешь этот код, что облегчает работу над новыми заказами. Некоторые платы и модули разводишь максимально унифицированно, чтобы результат потраченного времени можно было использовать повторно. Ну и многие другие оптимизации.
При слиянии просто последнюю букву первого слова и первую букву второго слова сделали общей. Почему использовали слово put? да видимо от названия С-шной функции putchar(), которая выводит символ в консоль и передвигает «каретку» к следующему знакоместу. (Ну там, еще указатель инкрементируется в буфере.)
но проблемы со здоровьем вылезли почти аналогичные. Доходило до длительных
депрессий и состояния «туманности сознания». К этому были добавлены еще
сложности в личной жизни и связанные с этим различные проявления комплекса неполноценности. Что тоже нагоняло депрессию. Ну и отсутствие уверенности в себе и своих силах. В один прекрасный день я случайно попал в подготавливающийся к открытию спортзал, в котором по просьбе знакомых нужно было запрограммировать и наладить охранную сигнализацию. Посмотрев на все это «безобразие» в виде различных тренажеров, штанг и гантель, я решил что мне пора подключаться к спорту.
Так я год назад записался в этот спортзал.
Первый месяц мне точно так же хотелось забросить это дело, но я себе в таких случаях
всегда говорил: «Мне тренировки жизненно необходимы, так как это решит огромную часть моих проблем. Как бы не хотелось, но я просто обязан во что бы то не стало.»
Спустя три месяца, занятия вошли в привычку и стали частью моей обыденной жизни.
Продолжать ту жизнь мне очень не хотелось, что и послужило мотивацией.
Чтобы не терять мотивацию, связанную со слабым прогрессом в первые три квартала тренировок, я всегда себе говорил: «Ну а что ты хочешь от организма, никогда не занимавшегося спортом? Организму нужно время, чтобы понять, что физические нагрузки теперь будут действовать на постоянной основе и перестроиться.»
И вот через год занятий прогресс в тренировках ускорился. Организм адаптировался и тренировки стали гораздо продуктивнее.
Решил ли спортзал мои проблемы? Да, решил. И останавливаться я не собираюсь. У меня все только начинается. Жизнь качественно улучшилась. У меня пропали все проблемы с сердечно-сосудистой системой. Я сбросил вес на 10 килограмм. Сначала сбросил с 96 до 84 кг, потом набрал 3 кг мышцами. Мозг стал очень хорошо работать. У меня появилась уверенность в себе. Изменился характер. Заметив все эти положительные изменения, я решил, что от спорта я уже не уйду. Он стал моим третьим хобби. Так я подписал себе спортивный приговор. :)
Считаю, что спорт просто необходим всем, у кого образ жизни не является физически активным. Выделить себе три дня в неделю, по два часа на занятия смогут многие. Зарплата программиста не является такой низкой, чтобы было проблематичным вписать в бюджет абонемент в спортзал.
Сам-то я о платформе AVR и PIC давно уже забыл и в основном у меня используются STM32, которые программирую в IAR. STM32 я достаточно хорошо знаю, на них есть практически вся документация. Но ESP8266 с их SDK… Помоему, даже SDK для ESP32 гораздо проще в использовании.
Что заказчика интересует, то они и сделают. Если заказчика интересует в первую очередь цена вопроса, то они эту цену обеспечат. Тогда качества не жди. Если заказчика будет интересовать в первую очередь качество, то качество он получит, однако это будет стоить совсем других денег.
внутри ПЛИС. Ведь если хорошо подумать, то ПЛИС — это массив мультиплексоров.
Сейчас работаю с библиотекой Dahua SDK. Так там соблюдены даже
такие простые меры исключения ошибок, как: