Support persistent file paths for framework services for `Os::Baremetal::MicroFs`
Author: Iva-LCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbug
| F´ Version | 4.3.0 |
| Affected Component | Baremetal (Os::Baremetal::MicroFs) |
Problem Description
In the current bare-metal deployment, Os::Baremetal::MicroFs uses a strict path-naming convention restricted to /bin<N>/file<M> slots. However, core F' framework services expect standard, human-readable file paths:
Svc::PrmDb: expects literal parameter store paths likePrmDb.datSvc::FileDownlink/Svc::FileUplink: expect arbitrary onboard or uplinked file paths.Svc::DpCatalog: expects data product file tracking paths.
Because MicroFs does not recognize these literal file paths, requests currently return Os::FileSystem::Status::INVALID. While this prevents system crashes, real parameter and file persistence remains non-functional on the target hardware.
Context / Environment
Operating System: Linux
Targeted Architecture: STM32H7
CPU Architecture: x86_64
Platform: Linux-6.18.33.2-microsoft-standard-WSL2-x86_64-with-glibc2.43
Python version: 3.14.4
CMake version: 3.26.0
Pip version: 26.2.1
Pip packages:
fprime-tools==4.3.0
fprime-gds==4.3.0
fprime-fpp==3.3.0
Project submodules:
https://github.com/nasa/fprime.git @ v4.3.0
https://github.com/fprime-community/fprime-baremetal @ 6dee5c5Current Behavior
- Framework services attempt to open or query files using standard paths (e.g.,
PrmDb.dator data product file names). Os::Baremetal::MicroFsevaluates the path string against its conservative/bin<N>/file<M>regex/naming parser.- The lookup fails and returns
Status::INVALID, resulting in fallback/default behavior.
Proposed Solution
- Path Mapping Translation Layer: Implement a lightweight path translation table in
Os::Baremetal::MicroFs(or an OSAL wrapper) that maps well-known literal paths to discreteMicroFsslots:"PrmDb.dat"$\rightarrow$/bin0/file0"DpCatalog.dat"$\rightarrow$/bin0/file1- Uplink / Downlink staging slots $\rightarrow$
/bin1/file<M>
Or:
- Extend
MicroFsPath Parsing: UpdateMicroFspath resolution to support custom string alias registrations alongside the standard/bin<N>/file<M>scheme duringMicroFsInit().
Source: nasa/fprime