1 / 15

cFE FSW at APL & FSW Reusability

cFE FSW at APL & FSW Reusability. C. Monaco chris.monaco@jhuapl.edu 240-228-5387. 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.

mamied
Télécharger la présentation

cFE FSW at APL & FSW Reusability

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. cFE FSW at APL& FSW Reusability C. Monaco chris.monaco@jhuapl.edu 240-228-5387

  2. 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 • Van Allen Probes • First use of cFE (cFE 5.1.0 & 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 • 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 6.3.3 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

More Related