TECH SESSION #1 STANDARDS AND BUILD TOOLS

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

File Management Systems
COS 420 Day 16. Agenda Assignment 3 Corrected Poor results 1 C and 2 Ds Spring Break?? Assignment 4 Posted Chap Due April 6 Individual Project Presentations.
Exemplar CFS Architecture
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Dr. John P. Abraham Professor UTPA
The european ITM Task Force data structure F. Imbeaux.
GLAST LAT ProjectT&C Database Management, 1 July GLAST Large Area Telescope T&C Database Management 1 July 2005 Bryson Lee
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
Introduction to Databases Angela Clark University of South Alabama.
March 2004 At A Glance The AutoFDS provides a web- based interface to acquire, generate, and distribute products, using the GMSEC Reference Architecture.
Planning Server Deployments Chapter 1. Server Deployment When planning a server deployment for a large enterprise network, the operating system edition.
1 1 National Aeronautics and Space Administration Future Products & Technology The Johns Hopkins University Applied Physics Laboratory Core Flight Software.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Benefits of a Virtual SIL
MIKADO – Generation of ISO – SeaDataNet metadata files
Space FSW Conference 2016 Matthew Conte Software Engineer
cFS Platforms OSAL and PSP
Test Executive Trades (1)
cFS Workshop Ground Systems & Kits
Development Environment
J. Gutleber, L. Orsini, 2005 March 15
Simulink Interface Layer (SIL)
Getting started with the Arxterra software and 3DoT Firmware
SOIS APP Working Group Overview
Muen Policy & Toolchain
Prototyping of CCSDS SOIS services on 1553 Bus
CollegeSource Security Application &
Module 11: File Structure
Current Generation Hypervisor Type 1 Type 2.
Dockerize OpenEdge Srinivasa Rao Nalla.
Customizing custom.
Open Source Software Product Status
Code Generation from SEDS
cFE FSW at APL & FSW Reusability
Chapter 11: File System Implementation
Exemplar CFS Architecture
Overview of SOIS Electronic Data Sheets (EDS) & Dictionary of Terms (DoT) SOIS APP WG Fall 2012.
UT-Assert Library Presented by Charles Zogby, NASA-GSFC
CCSDS Reference Architecture
SOIS-APP Working Group Report Jonathan Wilmot (WG Chair)
File System Implementation
TECH SESSION #1 ELECTRONIC DATA SHEETS
CFS Community Day Core Flight System Command and Data Dictionary Utility December 4, 2017 NASA JSC/Kevin McCluney December 4, 2017.
Ed Greenberg Greg Kazz 10/17/2012
Storage Virtualization
Integrating CCSDS Electronic Data Sheets into Flight Software
cFS Systems Technology Roadmap
Study of Tools for Command and Telemetry Dictionaries
Simulink Interface Layer (SIL) – Overview and Future
cFS Workshop Product Management
cFS Community Day Platform Technology Roadmap
Chapter 4: Threads.
James Blankenship March , 2018
Dr. John P. Abraham Professor UTPA
Dr. John P. Abraham Professor UTRGV, EDINBURG, TX
Indexing and Hashing Basic Concepts Ordered Indices
Directory Structure A collection of nodes containing information about all files Directory Files F 1 F 2 F 3 F 4 F n Both the directory structure and the.
Starting Design: Logical Architecture and UML Package Diagrams
Software models - Software Architecture Design Patterns
Dr. John P. Abraham Professor UTPA
and Device Interfaces from CCSDS Electronic Data Sheets
Advanced Exploration Systems (AES) Core Flight Software (CFS) Project
NASA/ Johnson Space Center
GSFC cFS Product Status
1 Multi-Protocol Label Switching (MPLS). 2 MPLS Overview A forwarding scheme designed to speed up IP packet forwarding (RFC 3031) Idea: use a fixed length.
Chapter 4: Threads.
A case study of implementations of SBN with SpaceWire
Internet Protocol version 6 (IPv6)
Presentation transcript:

TECH SESSION #1 STANDARDS AND BUILD TOOLS The Johns Hopkins University Applied Physics Laboratory core Flight System Workshop Jonathan Wilmot December 12, 2016

Future Products & Technology From the 2015 workshop Increasing the message name space (App ID) Software Bus Network Multicore Modeling/autocode Real-time Linux Partitioning Electronic Data Sheets OSAL/PSP layering Checkpoint restart Cmake build environment

Tools Inventory (1)

Tools Inventory (2)

Tools Inventory (3) There are a lot more tools out there! Please send your list to Jonathan.J.Wilmot@NASA.gov

cFS Message Name Space What’s the Problem cFS Software Bus uses CCSDS Space Packets the APID (topic) and is limited to 2047 commands and 2047 telemetry packets Allocation and management of APIDs during development Early block assignments to subsystems Ripple effects of APID changes to code, documentation, tests, ground systems… Larger systems of systems may run out of APIDs Example: Habitat and Orion docked Formation flying, distributed, cluster satellites, small satellites Includes multi-processor, multi-core, and partitioned systems In CCSDS, the spacecraft ID is in the WAN frame and is stripped off as the packet goes up the protocol stack

Extending the CCSDS Message Header Add an addition 32 bits to the CCSDS Space Packet secondary hdr Increasing the potential APID name space from 212 to 237 For practical/efficiency reasons cFS will limit to 232 Changes are isolated to cFS SB and SBN Applications subscribe to a 32 bit number Change is transparent to applications after a recompile Near term infusion GSFC Restore Servicing Payload mission Distributed system with 16 processors Currently implementing a 216 mapping 8 bits APID, 8 bits APID Qualifier AES Habitat GSFC WFIRST

Current CCSDS Space Packets Primary Header CCSDS APID allows 211 (2047) commands and an additional 2047 telemetry packets (APID = b11111111111 identifies an idle packet, typically used for fill) PACKET.request is a Send ( Space Packet, APID, APID Qualifier (optional), QoS Requirement (optional) ) “While the APID is contained in the Packet Primary Header of the Space Packet, the APID Qualifier does not appear in the data structure defined by the Space Packet Protocol. The value of the APID Qualifier is usually carried by a protocol (or protocols) of the underlying subnetworks.” “The APID may uniquely identify the individual sending or receiving application process within a particular space vehicle”

Proposed Updates to CCSDS SPP

cFS Changes CFS CFE_SB_MsgId_t changed from a uint16 to a uint32 Full change requires minor changes in SB implementation but only transparent API change SubSystemId 29 = 512 Allows 512 subsystems with 2046 commands, and 2046 telemetry packets. 220 allows ~1,048,576 APIDs within a vehicle (2x for cmds and tlm combined) SystemId 216 Can be populated with spacecraft ID but ignored in the mapping functions Add #ifdef MESSAGE_FORMAT_IS_CCSDS_MTS (cfe_mission_cfg.h) If set apply new format 232 mapping to CCSDS headers is mission dependent Can be in non contiguous header fields Changes are isolated to one file in SB implementation which has mappings Change to be made backward compatible using tool chain and compilation options Does not require changes to cFS components (bubbles/lollipops)

Build & Development Tools

(provided by applications) CFE/CFS 6.5 Build System The “classic” CFE/CFS build system uses custom-written makefiles. The design of the makefile-based build system presents some challenges/concerns going forward. Issue 1 – Two part design: Outer makefile in “build” directory references inner makefile with specific rules/targets Outer part is implemented by project/mission, sets up environment Inner part comes with CFS application or upstream source Both parts are “tightly coupled”; changes in one do affect the other, but they are not version controlled together because they come from different places. (mission customized) Outer Makefiles (provided by applications) Inner Makefiles

Next-Gen CFE/CFS Build System Issue 2 – Does not handle “#include” dependencies well Relies on running explicit “make depend” target But this changes over time, and may be affected by mission/platform config Issue 3 – Not readily extensible Adding apps or additional CPUs require “clone and modify” of multiple files. Number of total files to manage grows exponentially as (N_apps * N_cpus) Likewise, it is difficult to maintain multiple different configurations Such as a build for real Flight Avionics, a “hardware in the loop” simulation, or a fully simulated test. Each of these 3 would require its own entire “outer part” makefile copy. So the full total becomes (N_apps * N_cpus * N_configs) Entire outer tree must be “cloned and owned” for cpu2

Solution: Cmake build generator Using a “meta-makefile” to generate the actual makefiles helps solve these problems Allows for clearer differentiation of information roles in build system Recipes for generating a single binary (very generic) Tuning for a particular board/architecture (board-specific) Collection of applications and table definitions (mission-specific) All 3 can be specified independently and re-used as appropriate Even if the same information needs to be in multiple makefiles, they can all be updated simultaneously by re-running the generator script (1 command) BOARD SUPPORT Cross compiler, Tuning Flags (Part of PSP) APPLICATION RECIPES (Part of Apps) MISSION SPECIFIC App selection, Table defintions FINAL MAKEFILES

Directory Structure: Top Level Top Level Directory CFS Application Source Code One subdirectory per application, which directly maps to upstream/official source (not modified locally in any way) Build Output and intermediate files (100% generated files; not version controlled) Subtrees containing “upstream” sources Unmodified from their original state; no editing or customizing to the target system in these files Mission configuration Contains “overrides” or extensions to the distribution files that provide mission-specific needs All “mission-specific” information is consolidated in the _defs directory, such as: Number and type/architecture of processor boards in use, and the corresponding cfe_platform_cfg.h file for each processor board CFS Applications to compile for each processor board Top-level mission configuration (cfe_mission_cfg.h) Table definitions Script files This keeps orginal source trees completely original so “diffs” and merges work!

Cmake and make Classic make (cFS 6.4) will still be available in 6.5 and 6.6 For 6.6 the proposed approach is to include generated header files along with the EDS files in CM and in the open source releases If you use cmake the generated header files will be used instead of the distributed header file. If you use classic make the EDS files will be ignored but can be used for data base generation We would encourage new projects to use cmake

Integrating EDS wth cmake APIDs for all subsystems are defined in one mission XML file The APIDs numbers are arbitrary and only represent a mission wide topic handle cmake is set up to generate all of the APID header files prior to compiling the source code cmake can be set up to generate the “as deployed” mission EDS which is imported into the database tools ITOS, ASIST, COSMOS… This effort is in progress cmake can also be used to generate and allocate other cFS system wide identifiers such as Performance ID

Integrating EDS wth cmake APIDs for all subsystems are defined in one mission XML file The APIDs numbers are arbitrary and only represent a mission wide topic handle cmake is set up to generate all of the APID header files prior to compiling the source code cmake can be set up to generate the “as deployed” mission EDS which is imported into the database tools ITOS, ASIST, COSMOS… This effort is in progress cmake can also be used to generate and allocate other cFS system wide identifiers like Performance ID

Unit Test Tool (ut-assert)