Инструмент MemBrowse позволяет разработчикам встраиваемого ПО отслеживать объём оперативной (RAM) и флеш-памяти, который занимает их прошивка, прямо в системе непрерывной интеграции. Поддерживаются GitHub Actions, GitLab CI/CD, Jenkins и другие CI-решения.

Инженеры могут отслеживать изменения объёма памяти детально — при каждой отправке кода в проект, а не узнавать о проблеме постфактум, когда образ прошивки перестаёт помещаться во флеш-память или не запускается из-за чрезмерного расхода RAM. MemBrowse также хранит полную историю, показывая, как расход памяти менялся со временем и сколько ресурса остаётся для новых функций.

Панель MemBrowse для демо-проекта на MicroPython с целью rp2-picoПанель MemBrowse для демо-проекта на MicroPython (цель rp2-pico)

реклама кормит Уточку 🦆

Для микроконтроллеров это особенно важно: бюджет флеш-памяти и RAM жёстко ограничен, и превышение всего на несколько килобайт способно сломать сборку или заставить отказаться от части функций. Непрерывный контроль помогает поймать такие регрессии на раннем этапе, а не перед самым релизом.

Ключевые возможности MemBrowse:

Схема рабочего процесса MemBrowseРабочий процесс MemBrowse

  • Интеграция с CI/CD — работает с GitHub Actions, GitLab CI, Jenkins и другими системами непрерывной интеграции.
  • Автоматический учёт памяти при каждом коммите в основную ветку: открытый CLI-инструмент MemBrowse разбирает ELF-файл проекта и скрипт компоновщика, извлекает данные об использовании памяти и загружает отчёт в портал MemBrowse.
  • Комментарии в pull request показывают, сколько памяти добавляет или высвобождает каждое изменение.
  • Исторические графики визуализируют расход памяти во времени.
  • Сравнение целей помогает понять, чем различаются разные платы и конфигурации сборки.
  • Бюджетные оповещения прерывают сборку в CI, если расход памяти превышает заданные пользователем лимиты.

Такой набор функций превращает контроль памяти из разовой проверки перед релизом в рутинную часть процесса разработки: регрессии видно сразу, а не в момент, когда до предела флеш-памяти остаётся пара килобайт.

реклама кормит Уточку 🦆

У MemBrowse несколько тарифов. Для проектов с открытым исходным кодом в публичных репозиториях сервис «бесплатен навсегда» с неограниченным числом отслеживаемых целей. Бесплатно им уже пользуются такие проекты, как NuttX, TinyUSB, wolfSSL, Flipper One (прошивка RP2350), RT-Thread и Adafruit. Для закрытых проектов цена начинается от 99 долларов в месяц при отслеживании до 10 целей — чем больше целей, тем выше стоимость.

реклама кормит Уточку 🦆

У некоторых открытых проектов доступна живая панель мониторинга — на ней можно быстро оценить, что предлагает портал. Подробные инструкции по началу работы приведены в документации сервиса.

Раздел анализа символов в панели MemBrowse для прошивки Flipper One RP2350Раздел анализа символов в панели MemBrowse (прошивка Flipper One RP2350)

Отслеживание нескольких целей в open-source библиотеке wolfSSLНесколько целей отслеживаются в open-source библиотеке wolfSSL