Update supported platforms (#3710)

* updated supported platforms docs

* Fixed Tip box

* clear up doc

* fixed spelling

* Added nice title so the website can pick that up

* correcting step

* updated per pr reviews

* being more consistent with the word deployment. these sentences should actually use reference project instead of reference deployment -- as discussed with the fprime core team
This commit is contained in:
kevin-f-ortega 2025-06-16 16:29:08 -07:00 committed by GitHub
parent be91bfadf1
commit 7f73f012e2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,30 +1,62 @@
# Supported Platform
## What does "Supported Platform" Mean?
A **platform** refers to a combination of hardware and operating system (OS). A **supported platform** satisfies the following criteria:
✅ Reference project exists and is accessible to the core F Prime team.
📚 Platform library exists and is used as part of a reference application. The platform library provides OSAL implementation, cmake support, drivers, and anything else needed to build and run the Reference project.
🔁 Tested continuously as part of a continuous integration (CI) pipeline (e.g., unit tests, integration tests).
🔧 Actively maintained by the F Prime community or core F Prime team.
📄 Documented build and run instructions are available for users.
## Supported Platforms
A **supported platform** refers to a combination of hardware and operating system where the software is actively tested through continuous integration (CI). A platform is considered **supported** if all CI tests pass consistently, ensuring compatibility and reliability.
| Hardware | OS | Architecture | Reference Project |
| ---------------- | -------------------- | -------------- | ---------------------------------- |
| BeagleBone Black | VxWorks 7 | ARMv7 | [`fprime-vxworks-reference`](https://github.com/fprime-community/fprime-vxworks-reference) |
| Raspberry Pi | Linux | ARMv8 | [`fprime-workshop-led-blinker`](https://github.com/fprime-community/fprime-workshop-led-blinker) |
| x86 | Linux | x86\_64 | [`F Prime Ref`](https://github.com/nasa/fprime) |
| Apple M* | Darwin | ARM | [`F Prime Ref`](https://github.com/nasa/fprime) |
The following tables list currently supported platforms:
## Target Platforms (Planned Support)
| Hardware | OS | Reference Deployment | CI Passes |
|------|----------|----|-----------|
| BeagleBone Black | VxWorks 7 | [`fprime-vxworks-reference`](https://github.com/fprime-community/fprime-vxworks-reference) | |
| Raspberry Pi | Linux | [`fprime-workshop-led-blinker`](https://github.com/fprime-community/fprime-workshop-led-blinker) | |
These are platforms that the F Prime community or core team is actively working or planning to support. They may have partial implementations, early-stage deployments, or nothing yet.
| Hardware | OS | Architecture | Status | Reference Project |
| -------- | --------- | ------------ | ------------------- | ---------------- |
| PyCubed | Baremetal | RISC-V | In development |[`fprime-baremetal-reference`](https://github.com/fprime-community/fprime-baremetal-reference) |
| PyCubed | Zephyr | RISC-V | In development ||
| 3PySquared | Baremetal | ARM | In development |[`fprime-baremetal-reference`](https://github.com/fprime-community/fprime-baremetal-reference) |
| 3PySquared | Zephyr | ARM | In development | |
| Pi Pico 2| Baremetal | RISC-V | In development |[`fprime-baremetal-reference`](https://github.com/fprime-community/fprime-baremetal-reference) |
| Pi Pico 2| Zephyr | RISC-V | In development ||
| Pi Pico | Baremetal | ARM | In development |[`fprime-baremetal-reference`](https://github.com/fprime-community/fprime-baremetal-reference) |
| Feather M4 | FreeRTOS | ARM | In development | |
| HPSC | VxWorks 7 | RISC-V | In development | |
| HPSC | Linux | RISC-V | In development | |
| PolarFire SoC | VxWorks 7 | RISC-V | In development | |
| PolarFire SoC | Linux | RISC-V | Not started | |
| GR712RC | VxWorks 7 | SPARC V8 | Not started | |
| Vorago | Baremetal | ARM | In development | |
| VOXL2 | Linux | ARM64 | In development | |
## Future Supported Platforms
## How to Contribute a New Supported Platform
The following table list platforms expected to be supported in the future
We welcome contributions to expand the list of supported platforms! Heres how to get started:
| Hardware | Operating System | Expected Support | Notes |
|----------------|-----------|---------|----------------------|
| CubeSTEP | Linux | | Work has not started |
| HPSC | Linux | | In development |
| HPSC | VxWorks 7 | | In development |
| PolarFire SoC | VxWorks 7 | | In development |
| PROVES | Linux | | Work has not started |
| PyCubed | Linux | | Work has not started |
| Sphinx GR712RC | VxWorks 7 | | Work has not started |
| Teensy 4.1 | Baremetal | | In development |
| Vorago PEB1-VA41620 | Baremetal | | In development |
| Vorago PEB1-VA41630 | Baremetal | | In development |
| VOXL Snapdragon 820 | Linux | | Work has not started |
| VOXL2 Snapdragon 5165 | Linux | | Work has not started |
1. Pick a hardware and OS platform that is not in development or is not listed.
1. Create a platform library. Take a look at [`How-To: Develop an F Prime Library`](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-fprime-libraries/).
1. Create a reference project for your platform that uses your platform library. Use [`fprime-vxworks-reference`](https://github.com/fprime-community/fprime-vxworks-reference) or [`fprime-baremetal-reference`](https://github.com/fprime-community/fprime-baremetal-reference) as examples for the file structure.
1. Include build, run, and hardware setup instructions in a README.md.
1. Set up CI for your reference project and have CI run the F Prime provided integration test scripts.
1. Optional: submit a request to add your reference project to fprime-community by [opening a discussion](https://github.com/nasa/fprime/discussions). Provide platform description in your request.
> [!TIP]
> 1. Follow the naming and file-structure convention as the example reference projects.
> 1. Avoid using hardcoded paths in your toolchain file. Use environment variables.
> 1. Test on actual hardware if possible—emulated environments may behave differently.