Skip to content

Support persistent file paths for framework services for Os::Baremetal::MicroFs #5998

Description

@Iva-L
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().

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    PlatformsLabel for work related to OS and platforms support

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions