Hi,

I've opened a pull request: https://github.com/apache/nuttx/pull/18774
I've added a target from each architecture family supported by Nuttx.
The github workflow uses a github action:
https://github.com/membrowse/membrowse-action
This generates the memory footprint report from the ELF file, the ld script
and the map file, and then uploads it
to membrowse.com where you can see the dashboard.
To your question, Tomak: you can install membrowse with pip (pip install
membrowse) and generate the reports locally. However, the dashboard and the
database are hosted.
(There is a self hosted option as well, but it's not open source)

Kind regards,

Michael Rogov Papernov
Founder, MemBrowse
membrowse.com

Kind regards,

Michael Rogov Papernov
Founder, MemBrowse
membrowse.com


On Mon, 20 Apr 2026 at 16:14, Tomek CEDRO <[email protected]> wrote:

> Hey there Michael!
>
> Very nice solution! For sure we can use that to track how much
> firmware images grow in time.. right next to self-test and benchmark
> applications :-)
>
> Can membrowse constitute a standalone application to be part of
> nuttx/tools/membrowse? I mean so it can be launched locally too not
> only by the CI?
>
> Thanks :-)
> Tomek
>
> --
> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>
> On Mon, Apr 20, 2026 at 1:46 PM Michael Rogov Papernov
> <[email protected]> wrote:
> >
> > Hi all,
> >
> > I'd like to propose adding a memory footprint tracking integration to
> > NuttX's CI, and I'm looking for feedback before opening a PR.
> >
> > Background: I'm an embedded systems developer, and over the past year
> > I've been building MemBrowse,
> > a platform that parses ELF binaries and linker map files at the symbol
> > level and tracks firmware footprint across commits.
> > It runs as a CI step, uploads symbol data, and surfaces per-PR diffs
> > (flash/RAM deltas, symbols that grew or shrank, and library-level
> > breakdowns).
> > Similar integrations are already merged in TinyUSB and wolfSSL.
> >
> > I've set up a public dashboard with data from real NuttX builds so the
> > output is evaluable before any code lands:
> >
> >   https://membrowse.com/public/michael-membrowse/nuttx
> >
> > Proposed scope:
> >
> > 1. A new opt-in GitHub Actions workflow (or a job in an existing one)
> > that runs after a successful build, extracts symbol data from the ELF
> > and map file, and uploads it.
> > 2. Tokenless upload for public repos. No secrets in CI, no
> > pull_request_target, forked PRs work with the standard pull_request
> > trigger.
> > 3. No required changes to NuttX's build system. The tool consumes the
> > ELF and map artifacts the existing CI already produces.
> >
> > Feedback welcome.
> >
> > Kind regards,
> >
> > Michael Rogov Papernov
> > Founder, MemBrowse
> > membrowse.com
>

Reply via email to