Как стать автором
Обновить
109
20.8

Embedded SW/Firmware Engineer

Отправить сообщение

19 Атрибутов Хорошего Канального Протокола Передачи Данных

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7K

В этом тексте представлены атрибуты хорошего и простого канального Master-Slave протокола для пакетного обмена информацией между устройствами на общей шине таких как RS485, CAN, LoRa, BLE.
Несмотря на то, что есть канальные протоколы ModBus, DLMS, RDS, UBX, NEC, Pelco-D, yModem, многие компании всё же придумывают собственный канальный протокол для взаимодействия между своими электронными платами. Тут представлены общие атрибуты таких доморощенных протоколов.

Читать далее
Всего голосов 11: ↑6 и ↓5+4
Комментарии28

16 Способов Отладки и Диагностики FirmWare

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.9K

В этом тексте перечислены основные способы отлаживать и диагностировать проекты на микроконтроллерах.

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

Читать далее
Всего голосов 14: ↑11 и ↓3+14
Комментарии23

51 Атрибут Хорошего С-кода (Хартия Си программистов)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров26K

Это не академические атрибуты из учебников. Это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

Читать далее
Всего голосов 50: ↑45 и ↓5+52
Комментарии171

Коллоквиум по программированию микроконтроллеров

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров16K

Это список вопросов на которые должен уметь ответить тот кто хочет программировать микроконтроллеры и заниматься разработкой электроники. Вопросы в частности взяты из технических собеседований при устройстве на работу в разные компании. Постарался отобрать только самые приближенные к практике вопросы, которые можно выделить после 11 лет insider(ского) опыта.

Если вы знаете адекватные, сложные и интересные вопросы по теме разработки на MCU, то пишите их в комментариях.

Читать далее
Всего голосов 36: ↑14 и ↓22-4
Комментарии126

Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB

Время на прочтение16 мин
Количество просмотров22K

В тексте написано кокой путь проходят сорцы с момента написания до исполнения на микроконтроллере. Также про то как настроить ToolChain из бесплатных утилит. Показано на что стоит обратить внимание при запуске первого проекта на Cortex-M чипах. Этот текст, в сущности, пояснение того, что происходит под капотом большинства IDE.

Читать далее
Всего голосов 12: ↑5 и ↓7+2
Комментарии47

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

Уровень сложностиПростой
Время на прочтение63 мин
Количество просмотров73K

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

Иногда программист МК даже ничего не пишет сам вообще. Важно уже не сколько уметь программировать сколько уметь тестировать и собирать, улучшать из готового кода из интернета. Какие-то исходники можно взять из github или ядра Linux. Там есть код на многие темы. Драйверы для множества чипов.  Важно уметь верифицировать найденные сорцы и аккуратно подключить их к нужной сборке.

Читать далее
Всего голосов 135: ↑110 и ↓25+122
Комментарии404

Правила Хорошей Структурной Схемы для Электронных Плат

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров14K

В этом тексте я написал о забытом понятии: блок-схемы для разработки электроники. В ГОСТ(е) их называли Э1 (Схема структурная). Блок-схем это хороший уровень абстракции при анализе электронного устройства или PCB. Представил несколько атрибутов, которые сформировались при создании блок-схем. Привел примеры образцовых блок-схем. 

Читать далее
Всего голосов 18: ↑14 и ↓4+15
Комментарии82

Задача про две ёмкости для жидкости

Время на прочтение9 мин
Количество просмотров10K

Существует классическая задача:

Есть 2 емкости: 5 литров и 3 литра. Как отмерить 4 литра жидкости используя только эти 2 емкости?

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

Читать далее
Всего голосов 12: ↑9 и ↓3+11
Комментарии29

DevOps для производства Firmware

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров9.8K

В этом тексте я намерен пофантазировать каким мог бы быть абстрактный процесс разработки firmware с точки зрения DevOps. И перечислить атрибуты такого процесса.

Читать далее
Всего голосов 11: ↑8 и ↓3+6
Комментарии36

Атрибуты Xорошей PCB

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров15K

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

Этот перечень сформировался в результате реальных инцидентов.

Читать далее
Всего голосов 31: ↑24 и ↓7+30
Комментарии82

11 Aтрибутов Хорошего Firmware

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров18K

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

Читать далее
Всего голосов 41: ↑36 и ↓5+46
Комментарии115

Проверка дальности LoRa на T-BeamV1.1

Время на прочтение2 мин
Количество просмотров7.6K

Результаты проверки дальности LoRa link(a) на TBeamV1.1

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии25

Проверка дальности LoRa link(a)

Время на прочтение4 мин
Количество просмотров16K

Интерес к LoRa технологии возникает у разработчиков телеметрии для различных устройств: счетчики воды, автомобильные сигнализации, сельскохозяйственные технологии, наручные часы, трансиверы для авиамоделей и даже трансиверы для обмена текстовыми сообщениями среди Geek(ов).

Могу поделиться результатами своей непредвзятой проверки дальности LoRa link(a). Разрабатываю firmware для микроконтроллерного устройства на оcнове чипа SX1262.

Читать далее
Всего голосов 14: ↑12 и ↓2+13
Комментарии80

Высокоточная навигация GNSS RTK

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров20K

Демонстрации возможностей микросхем ZED F9P. Это примёмник GNSS с возможностью высокоточной навигации по технологии RTK.

Я решил самостоятельно оценить точность измерения координат.

Читать далее
Всего голосов 14: ↑12 и ↓2+13
Комментарии52

Информация

В рейтинге
333-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers