Разработка встраиваемых систем (embedded) сталкивается с серьезным барьером при использовании ИИ: языковые модели отлично пишут прошивку, которая компилируется без ошибок, но не учитывают физические особенности конкретных плат. Модель может не знать, что дисплей требует смещения области записи, что определенные пины на Raspberry Pi Pico отсутствуют на разъеме или что канал ADC2 в ESP32 занят Wi-Fi. В итоге код работает «на бумаге», но вызывает конфликты на реальном железе.
Проблема не в интеллекте, а в контексте
Основная причина ошибок LLM — отсутствие глубокого контекста о конкретном устройстве. Знания о нюансах разводки пинов, особенностях тактирования или специфических требованиях к драйверам разбросаны по многостраничным даташитам, китайским мануалам и личному опыту отладки. Каждая новая сессия с ИИ-ассистентом начинается с чистого листа: модель «забывает», какие ресурсы уже распределены между модулями в вашем проекте, и может предложить код, который перехватит занятый таймер или шину.
Проект mcu-skills: база знаний для агентов
Для решения этой проблемы создан открытый репозиторий mcu-skills, предназначенный для работы с Claude Code. Вместо того чтобы загружать в чат огромные даташиты, разработчики используют «скиллы» — каталоги с тремя уровнями информации: краткой выжимкой (SKILL.md) с картой пинов и правилами, глубокими справочными данными (reference/) и полностью рабочими шаблонами проектов (template/). Это позволяет агенту получать только нужные знания в нужный момент, не расходуя контекстное окно на лишнюю информацию.
Преимущества структурированного подхода
Использование таких скиллов превращает знание о железе в артефакт проекта, который можно версионировать вместе с кодом в Git. Это дает несколько преимуществ: знание сохраняется между сессиями, ошибки конфигурации фиксируются и становятся доступны всей команде, а ИИ начинает соблюдать «контракт с железом», не предлагая конфликтующие решения. На данный момент в коллекции собраны скиллы для 8 плат, включая семейства STM32, ESP32, Arduino Nano и Raspberry Pi RP2040.
