LabWired позволяет инженерам тестировать скомпилированную прошивку на смоделированных платах MCU (CPU и периферийные устройства)

LabWired от Andrii Shylenko — это ядро симуляции прошивки MCU с лицензией MIT, которое запускает скомпилированную прошивку на смоделированных CPU и периферийных устройствах, фиксирует вывод UART и шины, состояние регистров и поддерживает воспроизводимые проверки в CI.

Симулятор поддерживает ядра Arm Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33, архитектуру RISC-V, а также Xtensa LX6 и LX7 (некоторые компоненты ESP32). Основное преимущество проекта — ускорение тестирования прошивки, поскольку выполнение части тестов на реальных платах занимает много времени. Оборудование должно быть готово, затем при каждом тестировании прошивку необходимо записывать на плату, а если что-то ломается, разработчики видят негорящий светодиод и не получают трассировку. Если проект прошивки должен поддерживать несколько плат, это быстро увеличивает объем работ.

LabWired MCU board simulator

Проект отличается от эмулятора CPU/MCU по двум основным причинам:

  1. Моделируется вся плата, а не только чип. Сенсоры, дисплеи и шинные устройства также симулируются. Поэтому можно проверить трафик I2C, кадрирование SPI или то, какие команды отрисовки были отправлены панели.
  2. Реестр точности объясняет, где модель имеет ограничения, а симулятор обходит реальное оборудование, так что точно известно, где LabWired «жульничает» для любой из поддерживаемых платформ: STM32L476, RP2040, nRF52840, ESP32 и т. д…

labwired cli

LabWired — это в первую очередь CLI-приложение, и Andrii поделился примером, где PlatformIO собирает тестовую прошивку Unity для виртуального nRF52840, после чего LabWired запускает её без платы или J-Link. На компьютере с Linux была выполнена следующая команда:

pio test --without-uploading -e nrf52840_dkon

Все три теста прошли за 1,18 секунды — гораздо быстрее, чем на реальном оборудовании. Пример и исправление описаны в задаче на GitHub .

Если это терминальное приложение, почему в начале статьи есть снимок экрана веб-приложения? Потому что существует « Browser Playground », где можно поэкспериментировать со смоделированной платой NUCLEO-L476RG, подключённой к ультразвуковому сенсору, дисплею Nokia и логическому анализатору.

Исходный код Labwired Core на Rust можно найти на GitHub . Вызывать его можно из терминала, CI или ИИ-агента для программирования. Каталог example содержит более 200 конфигураций плат, которые можно использовать для тестирования. Также можно проверить матрицу валидации , чтобы получить список поддерживаемых плат и периферийных устройств. Claude Code использовался в проекте, но, по-видимому, в основном для интеграции с Model Context Protocol (MCP).

Часть кода имеет открытый исходный код, а часть — нет, как описано на GitHub:

Этот репозиторий содержит основной симулятор и его средства валидации: исполнение CPU, шины, памяти, периферии и внешних устройств; дескрипторы микросхем и систем; CLI, средство запуска тестов, адаптеры отладки и инструменты создания снимков и трассировки; а также метаданные валидации аппаратных целей. Пользовательский интерфейс приложения, поведение размещённого Playground и продуктовые поверхности находятся вне этого пакета.

На веб-сайте также есть страница с тарифами. Можно интегрировать всё самостоятельно или приобрести тарифы с «LabWired AI Tokens», если требуется использовать их инфраструктуру для тестирования.

LabWired Pricing

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

 

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted