cFS Applications & Libaries
CCSDS File Delivery Protocol
Transmits and receives files using the CFDP standard protocol defined in the CCSDS 727.0-B-4 Blue Book. The CF app sends and receives file information and file-data using Protocol Data Units (PDUs) over the cFE’s software bus.
Checksum
The CS application is used for ensuring the integrity of onboard memory. CS calculates Cyclic Redundancy Checks (CRCs) on the different memory regions and compares the CRC values with a baseline value calculated at system start up.
Command Ingest
Reads commands from an input device using the Input-Output Library and sends the commands on the software bus.
Data Storage
Stores software bus messages into user defined files.
External Code Interface
Software abstraction layer that allows the interfacing of externally generated mission-specific code to a cFS app via a generic set of wrapper code. The ECI enables direct integration of heritage or auto-generated code without the need for hand-written interface code.
File Manager
Provides a ground interface for onboard directory and file management services.
Health & Safety
Provides onboard status assessment with Application Monitoring, Event Monitoring, Hardware Watchdog Servicing, Application Execution Counter Reporting (optional), and CPU Aliveness Indication (via UART).
Housekeeping
Builds and sends combined telemetry messages (from individual system applications) to the software bus for routing.
I/O Library
Collection of I/O protocol libraries used by apps such as command ingest and telemetry output.
Limit Checker
Used for fault detection and correction by monitoring telemetry data and executing stored command scripts when limits exceeded.
Memory Dwell
The MD application monitors memory addresses accessed by the CPU. This task is used for both debugging and monitoring unanticipated telemetry that had not been previously defined in the system prior to deployment.
Memory Manager
Provides the ability to load and dump system memory via command parameters, as well as, from files. Supports symbolic addressing.
Scheduler
Generates software bus messages at user-defined time intervals. When apps synchronize their execution with the scheduled messages the system can operate in a Time Division Multiplexed (TDM) fashion with deterministic behavior.
Simulink Interface Layer
The Simulink Interface Layer (SIL) is an extension of the Simulink Coder generation tool which allows it to generate code which is compatible with the cFS ECI (External Code Interface).
Stored Command
Manage absolute and relative time tagged command sequences that are executed upon command.
Telemetry Output
Outputs software bus telemetry message to an output device using the Input-Output Library.
cFS Distributions
cFS Framework-101
cFS Framework training packageThis is a training tool for individuals to learn how to develop software with NASA-developed Core Flight software (CFS) framework. No agreement is necessary through this catalog. Software is available at open source site.
NASA Goddard cFS Build
Initial cFS build for a developer or a projectThis repository contains the core Flight Executive and a number of submodules including OSAL, example “lab” applications, and NASA GSFC mission-ready applications. This distribution has been compiled/linked but has not been verified as an operational system.
NASA Operational Simulator for Small Satellites (NOS3)
Provides a complete cFS system designed to support satellite flight software development throughout the project life cycle.Includes
• 42 Spacecraft dynamics and visualization, NASA GSFC
• cFS – core Flight System, NASA GSFC
• COSMOS – Ball Aerospace
• ITC Common – Loggers and developer tools, NASA IV&V ITC
• NOS Engine – Middleware bus simulator, NASA IV&V ITC
OpenSatKit (OSK)
Provides a complete cFS system to help train new cFS developers and provide an initial cFS platform for a project.
The kit combines three open source tools to achieve these goals:
• cFS – core Flight System, NASA GSFC
• COSMOS – command and control platform for embedded systems, Ball Aerospace
• 42 dynamic simulator, NASA GSFC