#5998·fprime

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 like PrmDb.dat
  • Svc::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 @ 6dee5c5

Current Behavior

  1. Framework services attempt to open or query files using standard paths (e.g., PrmDb.dat or data product file names).
  2. Os::Baremetal::MicroFs evaluates the path string against its conservative /bin<N>/file<M> regex/naming parser.
  3. 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 discrete MicroFs slots:
    • "PrmDb.dat" $\rightarrow$ /bin0/file0
    • "DpCatalog.dat" $\rightarrow$ /bin0/file1
    • Uplink / Downlink staging slots $\rightarrow$ /bin1/file<M>

Or:

  • Extend MicroFs Path Parsing: Update MicroFs path resolution to support custom string alias registrations alongside the standard /bin<N>/file<M> scheme during MicroFsInit().