マイクロコントローラーなどのリソースが限られたデバイスで動作し、ハードウェアアクセス用モジュールを備えた軽量なPython 3実装。
membrowse/membrowse-action
ELFファイルから組み込みファームウェアのフラッシュとRAMの使用量を追跡し、プルリクエストにメモリ差分をコメントするGitHub ActionとPython CLI。
- スター
- 50
- フォーク
- 2
- 未解決の Issue
- 0
- 最終コミット
- 一昨日
これは何?
MemBrowseは、組み込みファームウェアイメージが使用するフラッシュとRAMの容量を測定します。ELFファイルとリンカスクリプトを読み込み、シンボルをソースファイルに対応付け、メモリ領域ごとの使用量と、サイズの大きいシンボルを報告します。CLIはアカウントなしでローカル実行できるため、開発者自身のマシンでビルドを確認するのに便利です。
CIでは、GitHub Actionが各解析結果をMemBrowseサービスにアップロードし、コミットをまたいだ履歴を保存します。プルリクエストにはメモリ差分をコメントでき、設定した予算を超えた場合はビルドを失敗させることもできます。これらのクラウド機能を使うには、無料のAPIキーが必要です。
ARM、Xtensa、RISC-Vなど、DWARFデバッグ情報を含むELFファイルを出力するあらゆるツールチェーンに対応しています。GNU LDスクリプト、IAR ICFファイル、SEGGER Embedded Studioのプロジェクトファイルを解析し、ファイルの内容から形式を判別します。
主な機能
- 01ELFファイルからメモリ領域ごとのフラッシュとRAMの使用量を報告
- 02シンボルを定義元のソースファイルに対応付け
- 03GNU LD、IAR ICF、SEGGER emProjectファイルからメモリレイアウトを読み込み
- 04GitHub Actionを通じてプルリクエストのコメントにメモリ差分を投稿
- 05メモリ予算を超えた場合にCIビルドを失敗させる
ユースケース
- コードレビューでファームウェアサイズのリグレッションを検出する
- 新機能がマイクロコントローラーのフラッシュに収まるか確認する
- 組み込みプロジェクトのコミット間でメモリ使用量を比較する
- アカウントを作成せずにローカルでメモリ解析を実行する
クイックスタート
- 1
PyPIからMemBrowse CLIをインストールします
pip install membrowse - 2
リンカースクリプトを使ってファームウェアのELFファイルをローカルで解析します
membrowse report build/firmware.elf "src/linker.ld" - 3
必要に応じて、CIでメモリ使用量を追跡するGitHub Actionsワークフローを追加します
使う前に知っておきたいこと
- PRコメント、履歴の追跡、CIの予算超過時のゲートには、無料のMemBrowse APIキーとアカウントが必要です。
- GPL-3.0ライセンスで提供されています。コピーレフトライセンスのため、一部のプロプライエタリな用途が制限される場合があります。
収録されている特集
トピック
よくある質問
- membrowse-action とは?
- ELFファイルから組み込みファームウェアのフラッシュとRAMの使用量を追跡し、プルリクエストにメモリ差分をコメントするGitHub ActionとPython CLI。 MemBrowseは、組み込みファームウェアイメージが使用するフラッシュとRAMの容量を測定します。ELFファイルとリンカスクリプトを読み込み、シンボルをソースファイルに対応付け、メモリ領域ごとの使用量と、サイズの大きいシンボルを報告します。CLIはアカウントなしでローカル実行できるため、開発者自身のマシンでビルドを確認するのに便利です。
- membrowse-action は無料で使えますか?ライセンスは?
- membrowse-action は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- membrowse-action は今もメンテナンスされていますか?
- 活発にメンテナンス中。membrowse-action の最終コミットは 2026年11月4日 です。
- membrowse-action は何に使えますか?
- コードレビューでファームウェアサイズのリグレッションを検出する 新機能がマイクロコントローラーのフラッシュに収まるか確認する 組み込みプロジェクトのコミット間でメモリ使用量を比較する アカウントを作成せずにローカルでメモリ解析を実行する
- membrowse-action のインストール方法は?
- PyPIからMemBrowse CLIをインストールします: pip install membrowse リンカースクリプトを使ってファームウェアのELFファイルをローカルで解析します: membrowse report build/firmware.elf "src/linker.ld" 必要に応じて、CIでメモリ使用量を追跡するGitHub Actionsワークフローを追加します
- membrowse-action はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/membrowse/membrowse-action
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
組み込み開発向けのクロスプラットフォームなコマンドラインツール兼ビルドシステム。ライブラリ管理、複数のボードやフレームワーク、デバッグ、ユニットテストに対応します。
50以上のMCUファミリーに対応し、メモリ安全性とスレッド安全性を重視して設計された、組み込みシステム向けのクロスプラットフォームなオープンソースUSB Host/Deviceスタックです。
ハードウェア抽象化レイヤーとボード・チップのサポートを備えた、Zigで組み込みアプリケーションを開発するためのツールボックス。
クラシックなCasio F-91Wの基板を置き換え、手首で自作プログラムを動かせるオープンソース基板。
WiFi経由でアドレス指定可能なRGB LEDテープ、2Dマトリクス、HUB75パネルを制御するオープンソースのESP32ファームウェア。