Даже в 2025 году, когда вокруг нейросети, автогенерация кода и IDE с предиктивным интеллектом, работа с редкими микроконтроллерами всё ещё может обернуться настоящим хардкором. Особенно, если речь идёт о «слепой» отладке без отладчика, когда в арсенале только прошивка, HEX-файл и пара байтов на выводе. В этой статье — личный опыт, много хардкора, дизассемблирование вручную и поиск глюка в 2 КБ бинаря.
Рубрика «embedded» - 3
Зачем программисту дизассемблер в 2025: отладка на слепую под редкие MCU
2025-05-08 в 6:16, admin, рубрики: embedded, mcu, msp430, ассемблер, бинарный анализ, дизассемблер, отладка, прошивкаКогда ты больше не просто пишешь код. Ты управляешь энергией
2025-04-16 в 11:15, admin, рубрики: embedded, FOC, PMSM, Векторное управление, электроприводКогда-то я писал веб-приложения. Решал задачи бизнеса, деплой в прод, REST, тесты, метрики, кубики. Всё было нормально. Но в какой-то момент мне стало… скучно.
Да, задачи были интересными. Команда — отличной. Но где-то внутри появилась пустота. Хотелось делать что-то настоящее. Осязаемое. Что-то, где за твоим кодом — больше, чем UI и API. Хотелось влиять на реальный мир.
Затолкаем, братцы!!! UART Lite через PCIe прямиком в Linux: драйвер за вечер (почти)
2025-04-14 в 10:15, admin, рубрики: AXI, driver, embedded, fpga, linux, linux kernel, pcie, tty, uart, vivadoИногда самые простые задачи превращаются в мини-приключения. Например, когда вам нужно подключить UARTLite на FPGA к Linux через PCIe. Кажется, ну что там? Пару регистров, пара прерываний… А на деле — несколько дней за Vivado, отладка XDMA и борьба с драйверами. 😅
В этой статье я расскажу, как я всё-таки победил UARTLite через XDMA и как вы сможете повторить это без боли.
Что такое Lua: почему стоит его попробовать и как встроить в программу на Go
2025-04-08 в 13:37, admin, рубрики: embedded, golang, LuaLua — это лёгкий, быстрый и гибкий скриптовый язык, который появился в 1993 году. Он написан на C и чаще всего используется не как самостоятельный язык, а как встраиваемый инструмент для других приложений.
Если вы играли в World of Warcraft и устанавливали аддоны, вы уже сталкивались с Lua. Redis исполняет Lua-скрипты внутри себя. Nginx использует его для обработки HTTP-запросов. В NeoVim плагины тоже можно писать на Lua. Короче говоря — язык не из популярных топов, но крайне полезен и встраиваем во многие инфраструктурные решения.
Синтаксис Lua: просто и понятно
Начнём с классики:
print("Hello, World!")
FreeRTOS для самых маленьких на примере ESP-IDF
2025-01-02 в 9:01, admin, рубрики: embedded, esp32, freertos, http, ruvds_статьи, Программирование, шаговики, шаговые двигатели, шаговый двигатель
Все мы знаем, что FreeRTOS — это операционная система для проектов, где каждой задаче установлены строгие рамки времени, чтобы любое действие было гарантированно обработано. На этом познания об этой системе у большинства айтишников заканчиваются, по той простой причине, что 99% из нас не собираются никогда в жизни разрабатывать ничего наподобие софта тормозной системы автомобиля или медицинского оборудования. Но я бы хотел сегодня немного рассказать об этой системе, потому как она вполне может пригодиться многим из нас по другим причинам. Ведь FreeRTOS вполне может оказаться отличным следующим шагом для саморазвития после Arduino, потому как поддерживает невероятное количество процессоров и при разрастании проекта немногим сложнее «Hello World» её использование будет проще для написания кода за счёт своей продуманной архитектуры. Её можно использовать на микроконтроллерах, с которыми многие уже привыкли работать в своих проектах выходного дня и которые обходятся в смешные деньги, например AVR, ESP32 и STM32. Сегодня я покажу, насколько просто использовать преимущества FreeRTOS на примере контроллера ESP32 и фреймворка от производителя Espressif — ESP-IDF, для своей линейки микроконтроллеров.Читать полностью »
STM32. CMSIS. Пять способов генерации (псевдо-)случайного сигнала на выводе микроконтроллера
2025-01-01 в 21:50, admin, рубрики: embedded, stm32Псевдослучайные и случайные сигналы применяются для различных целей. В этой статье будет рассмотрено несколько способов их генерации на микроконтроллерах серии STM32.
Суть проблемы
Допустим, нужно построить АЧХ линии связи или компонента, подключённого к устройству. Или применить шум для электронной музыки (чиптюны?). Или для чего-то ещё.
ISA и другие legacy-интерфейсы в современных встраиваемых компьютерах
2024-12-16 в 9:55, admin, рубрики: embedded, embedded systems, ETX, ISA, legacy, MicroPC, PCI, VME, vortex86, vortex86dxВведение.
Несмотря на постоянное увеличение скорости и пропускной способности интерфейсов передачи данных, до сих пор в некоторых областях промышленности востребованы интерфейсы, разработанные еще в 80-е годы XX века. Связано это прежде всего с тем, что к некоторым промышленные объекты и устройствам предъявляются требования по доступности и непрерывной работе в течение десятков лет после ввода в эксплуатацию.
Примерами таких шин являются: ISA (Industry Standard Architecture) и VME (Versa Module Eurocard).
Как я создал устройство, которое может удаленно эмулировать мышку и клавиатуру на stm32
2024-11-03 в 7:16, admin, рубрики: cubeide, embedded, esp, esp8266, stm32, usb, USB-HID, микроконтроллеры1. Как появилась идея?
Всем привет, совсем недавно я начал изучать протокол USB на STM32F103C8, а именно HID-устройства. Я такой человек, который не сильно любит теорию, но обожает учиться всему на практике, поэтому я тут же начал думать над будущим проектом. И я вспомнил, что совсем недавно заказал себе wifi модуль - ESP8266.
Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: сборка операционной системы
2024-10-24 в 10:05, admin, рубрики: embedded, fpga, hard-cpu, linux, soft-cpuИ снова здравствуй! Вместе со мной, ведущим инженером-программистом в дивизионе искусственного интеллекта YADRO, вы добрались до второй части повествования о параллельном запуске двух ОС на FPGA с процессорной подсистемой.
Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: проект программируемой логики
2024-09-26 в 10:58, admin, рубрики: embedded, fpga, IP, linux, SoC, xilinx zynqПривет! Меня зовут Павел Панкратов, я ведущий инженер-программист в дивизионе искусственного интеллекта YADRO. Этим текстом я запускаю цикл статей — экскурс в особенности работы с SoC, комбинирующей в себе реализованные в «железе» аппаратные блоки (Hard IP’s) и программируемую логику (Soft IP’s). Основная задача, которая объединит все три статьи, — параллельный запуск встраиваемой операционной системы на двух различных по архитектуре процессорах, представленных в виде Hard и Soft IPЧитать полностью »
