Presentation is loading. Please wait.

Presentation is loading. Please wait.

cFE FSW at APL & FSW Reusability

Similar presentations


Presentation on theme: "cFE FSW at APL & FSW Reusability"— Presentation transcript:

1 cFE FSW at APL & FSW Reusability
C. Monaco

2 Spark discussion in the community regarding best practices for
Overview APL use of cFE Application Template Libraries Spark discussion in the community regarding best practices for Abstracting HW & Platform Increasing the reusability of FSW Use of drivers

3 + cFE at APL cFE & OSAL Van Allen Probes
First use of cFE (cFE & OSAL 2.11) RAD750, VxWorks 6.4 Two spacecraft Earth orbiters Launched 8/30/2012 Predecessor APL missions STEREO and MESSENGER did not use cFE & OSAL middleware Much of the APL FSW infrastructure was able to be adapted into the cFE environment cFE & OSAL +

4 cFE at APL 2011 – 2012 - JHU APL / GSFC IRAD efforts Solar Probe Plus
Memory Protection IRAD cFE running in user-mode on an embedded system running VxWorks 6.7 Multi-Core IRAD cFE systems running in Asymmetric Multiprocessing (AMP) & Symmetric Multiprocessing (SMP) Solar Probe Plus One spacecraft (SC) with 3 Single Board Computers (SBCs) 2018 Launch Flight Software RTEMS 4.10 APL developed SBC with UT699E cFE 6.4.0, OSAL 4.1 Testbed RedHawk Linux – with real-time kernel patch Hosts emulations of SC components that are unavailable on a particular testbed

5 Application Commonality
During the development of Van Allen Probes FSW it was recognized that applications that use cFE have a lot in common Initialization with cFE Initialization with scheduler (SCH) application Housekeeping telemetry generation Initialization of parameter management Some common commands Common features Counters Telltales Message processing (message & response handler infrastructure) Command processing (command & response handler infrastructure) All applications need to be maintained

6 Application Template A Common Application Template was developed under Van Allen Probes Van Allen Probes: Each APL-Developed FSW application will be built upon a Common Application Template Isolate infrastructure from application-specific functionality Jump-start software development for new applications Allow developers to focus on the personality of each application rather than the basic application infrastructure Provides application uniformity & simplification of software maintenance The Common Application Template is cloned to create new applications Reduces code review materials Reduces unit test effort References to TMP within the template source are automatically converted to the mnemonic for the application TMP_AppWakeup()  becomes AUT_AppWakeup()

7 Application Template – reusability and maintainability
The Application Template exists in separate source files from the application-specific code Maintaining the Application Template is similar to maintaining a middleware The APIs have an incentive to remain the same The implementation may be changed The updated template can be deployed to existing applications and new applications alike With zero or minimal disruption to existing applications

8 APL cFE Applications OSAL allows the software applications to be abstracted from the OS cFE helps abstract one application from another Rather than making direct function calls (whose APIs could change) from one application to another, messages are sent on the software bus Applications Some C&DH applications are highly re-usable – have no SC / platform dependencies Some FSW applications have some SC / platform dependencies but are otherwise largely independent of the SC / Platform Other applications are very dependent upon the SC / Platform

9 APL cFE Applications A goal was to maximize the potential for reuse of FSW applications from mission to mission A goal was to facilitate FSW development on the ubiquitous linux platform Free up valuable test-bed time Therefore, a design objective of the APL Flight Software Application was to (within reason) abstract the hardware from the applications

10 APL Libraries for cFE Systems
Some FSW libraries exist to provide common functionality to multiple applications Table management Utility functions, etc. Some FSW libraries exist to provide an abstraction to SC or HW Enable development on pc-linux platform Enhances reuse for subsequent missions.

11 APL Libraries for cFE Systems
Memory Object Handler An example of a SC / platform independent library Rather than using the cFE Table Services, much of the APL legacy flight software used “Memory Objects” Custom parameter management system was subsequently ported to the cFE environment as MOH_lib Applications “Register” with the Memory Object Handler Library: Register “memory object type” with the library Register “memory object IDs” Individual memory objects or a group if the same kind of memory object Register call-back functions to allow access, manipulation and verification of the registered objects Provides mechanism for modifying, uplinking, downlinking the contents of selected tables or internal data structures

12 APL Libraries for cFE Systems
EEPROM Library Van Allen Probes had EEPROM non-volatile memory This library abstracted the details of EEPROM from the applications that required access: EE_Read(), EE_Write(), EE_WriteEnableDisable(), etc. A simple port of this library was created to emulate EEPROM using a file for pc-linux This allowed development on Van Allen Probes to proceed in the pc-linux environment The existence of this library allowed the software that used it to be portable to other NVM technologies through a different port of the library APL BSP Library Interface to timers for scheduler (SCH) application interrupt and synchronization Which NVM image was booted and is running Collect CPU utilization metrics Check validity of RAM addresses A port exists for Van Allen Probes, PC Linux, and SPP

13 APL Libraries for cFE Systems
SSR Library Access to SSR registers SSR DMA Provide housekeeping specific to the SSR hardware Provide consistent access to SSR by FSW applications Mutual exclusion, maintenance of applicable state information SCIF Library Most spacecraft specific Opportunity for reuse across missions is minimal Enables FSW to run on pc-linux for the particular mission Abstraction of uplink/downlink hardware Abstraction of Spacecraft Interface (SCIF) HW Abstraction of the SpaceWire Router Abstraction of other mission unique hardware

14 APL Libraries for cFE Systems
Source code for the libraries is either Flat: for libraries that exist to provide common functionality across multiple applications MOH_lib/<source>.c Parallel: for libraries that exist to abstract SC or platform SCIF_lib/shared/<source>.c SCIF_lib/spp-sbc/<source>.c SCIF_lib/pc-linux/<source>.c Environment variables in the build (similar to those that help locate the PSP port) are used to select the library port.

15 Follow Up The community could benefit from more discussion on
Best practices of use of Drivers & Libraries


Download ppt "cFE FSW at APL & FSW Reusability"

Similar presentations


Ads by Google