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
