cFE FSW at APL & FSW Reusability

Slides:



Advertisements
Similar presentations
MapuSoft Technologies Presentation OS Abstractor, OS Changer, OS PAL and MapuSoft are registered trademarks of MapuSoft Technologies Inc. All other trademarks.
Advertisements

Using MapuSoft Instead of OS Vendor’s Simulators.
Chapter 6 Security Kernels.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Computer Systems/Operating Systems - Class 8
Disco Running Commodity Operating Systems on Scalable Multiprocessors.
Operating Systems CS208. What is Operating System? It is a program. It is the first piece of software to run after the system boots. It coordinates the.
SpaceDrone: Bringing Spacecraft Flight Software Closer to Earth
November 2011 At A Glance GREAT is a flexible & highly portable set of mission operations analysis tools that increases the operational value of ground.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
LWIP TCP/IP Stack 김백규.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Test-as-You Fly SpaceWire for Solar Probe Plus
Flight Software Overview
Concurrency, Processes, and System calls Benefits and issues of concurrency The basic concept of process System calls.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
GLAST Large Area Telescope Instrument Flight Software Flight Unit Design Review 16 September 2004 Secondary Boot Code (SBC) D.Wood Naval Research Laboratory.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Introduction to Operating Systems Concepts
Computer System Structures
Benefits of a Virtual SIL
Introduction to threads
cFS Platforms OSAL and PSP
Introduction to the ARM mbed Platform– A Hands-on Course
Simulink Interface Layer (SIL)
Operating System Structures
Agenda Hardware Virtualization Concepts
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
OSAL and PSP Inventory and Status
Current Generation Hypervisor Type 1 Type 2.
Exemplar CFS Architecture
Operating Systems : Overview
LWIP TCP/IP Stack 김백규.
CS 6560: Operating Systems Design
Chapter 5: Using System Software
How to Quick Start Virtual Platform Development
CS 286 Computer Organization and Architecture
Oracle Solaris Zones Study Purpose Only
KERNEL ARCHITECTURE.
Core Flight System on Unique Missions & Experiments
OS Virtualization.
cFS Workshop Product Management
cFS Community Day Platform Technology Roadmap
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
OS Organization.
Threads, SMP, and Microkernels
Threads and Data Sharing
Chapter 2: System Structures
Lecture Topics: 11/1 General Operating System Concepts Processes
Lecture 4- Threads, SMP, and Microkernels
B.Ramamurthy Chapter 2 : Appendix
Operating Systems : Overview
Operating Systems : Overview
Chapter 2: Operating-System Structures
Operating Systems Lecture 3.
Introduction to Operating Systems
CubeSat vs. Science Instrument Complexity
Outline Chapter 2 (cont) OS Design OS structure
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Outline Operating System Organization Operating System Examples
Chapter 2: Operating-System Structures
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Presentation transcript:

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

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

+ cFE at APL cFE & OSAL 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 +

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 6.3.3 Linux – with real-time kernel patch Hosts emulations of SC components that are unavailable on a particular testbed

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

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()

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

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

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

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.

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

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

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

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.

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