Developing LPF s Data Management Unit



Similar documents
Parallels Virtuozzo Containers

LISA Pathfinder SUMMARY

Use of CCSDS File Delivery Protocol (CFDP) in NASA/GSFC s Flight Software Architecture: core Flight Executive (cfe) and Core Flight System (CFS)

Best Practices on monitoring Solaris Global/Local Zones using IBM Tivoli Monitoring

CDC UNIFIED PROCESS JOB AID

An Introduction to the ECSS Software Standards

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

7a. System-on-chip design and prototyping platforms

Architectures and Platforms

Chapter 6, The Operating System Machine Level

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

CycurHSM An Automotive-qualified Software Stack for Hardware Security Modules

Multi-core Curriculum Development at Georgia Tech: Experience and Future Steps

Outline. Introduction. Multiprocessor Systems on Chip. A MPSoC Example: Nexperia DVP. A New Paradigm: Network on Chip

VME Data Acquisition System: Fundamentals and Beyond. Abhinav Kumar Bhabha Atomic Research Centre, Mumbai March 2011

Company Overview & Capabilities

Components of a Computer System

RAMS Software Techniques in European Space Projects

Chapter 3 Operating-System Structures

Flight Processor Virtualization

Distribution One Server Requirements

12. Introduction to Virtual Machines

Virtualization for Cloud Computing

Chapter 13. PIC Family Microcontroller

The Microsoft Windows Hypervisor High Level Architecture

Embedded Software development Process and Tools:

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

System Software Integration: An Expansive View. Overview

Going Linux on Massive Multicore

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Linux A multi-purpose executive support for civil avionics applications?

Operating Systems 4 th Class

Fernando Aguado-Agelet University of Vigo - INTA

Chapter 2 System Structures

WiSER: Dynamic Spectrum Access Platform and Infrastructure

Mission Operation Ground. ESA. Mario Merri GSAW, Los Angeles, USA 2 Mar 2011 ESA UNCLASSIFIED

Virtualization: Know your options on Ubuntu. Nick Barcet. Ubuntu Server Product Manager

How To Test Your Code

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

SOSSE. Matthias Brüstle Simple Operating System for Smartcard Education. Kommunikationsnetz Franken e.v.

Microcontrollers in Practice

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

Safety and Security Features in AUTOSAR

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

Operating System Overview. Otto J. Anshus

Development of complex KNX Devices

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

Red Hat enterprise virtualization 3.0 feature comparison

CS 6290 I/O and Storage. Milos Prvulovic

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

Detailed Design Report

INTRODUCTION TO WINDOWS 7

Control period can have high frequency (short control frame) ex: 0.1kHz - 1kHz in robot controllers

High Performance or Cycle Accuracy?

LSI SAS inside 60% of servers. 21 million LSI SAS & MegaRAID solutions shipped over last 3 years. 9 out of 10 top server vendors use MegaRAID

Cloud Computing. Up until now

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

PFP Technology White Paper

What You Will Learn About. Computers Are Your Future. Chapter 8. Networks: Communicating and Sharing Resources. Network Fundamentals

OVERVIEW. CEP Cluster Server is Ideal For: First-time users who want to make applications highly available

Linux Performance Optimizations for Big Data Environments

Microsoft s Open CloudServer

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Embedded Linux Platform Developer

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Network Station - Thin Client Computing - Overview

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

System-on-a-Chip with Security Modules for Network Home Electric Appliances

Principles and characteristics of distributed systems and environments

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems Chapter-1L03: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

How to Secure Infrastructure Clouds with Trusted Computing Technologies

Developing reliable Multi-Core Embedded-Systems with NI Linux Real-Time

Virtualized Exchange 2007 Archiving with EMC Xtender/DiskXtender to EMC Centera

NEC Corporation of America Intro to High Availability / Fault Tolerant Solutions

Design Document. Offline Charging Server (Offline CS ) Version i -

Computer Science 4302 Operating Systems. Student Learning Outcomes

Advanced Memory and Storage Considerations for Provisioning Services

Software Classification Methodology and Standardisation

RISC-V Software Ecosystem. Andrew Waterman UC Berkeley

Chapter 2. Basic Concepts Linux Workstation. 2.1 Types of Hosts

Have both hardware and software. Want to hide the details from the programmer (user).

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Network connectivity controllers

Embedded Systems Engineering Certificate Program

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

obems - open source Building energy Management System T4 Sustainability Ltd

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Web Application s Performance Testing

Determining Your Computer Resources

Knowledge, Certification, Networking

Data Centric Systems (DCS)

DoD Software Assurance (SwA) Overview

Transcription:

Mission critical software development in LISA Pathfinder Institut d Estudis Espacials de Catalunya 6th LISA Symposium

The Data Management Unit Goals M&C of LTP subsystems Delivery of science data Remote LTP control from OBC/Earth Challenges Robustness/reliability Timeliness (real time) Small footprint

Hard friends Processor: limited power ERC32, RISC based 12 MHz, 32 bit buses FPGA: the world is flat Memory mapped access to data units. and communications buses. Storage: secure but scanty 1Mb RAM memory, EDAC 2Mb EEPROM memory 64Kb PROM persistent storage Communications: military security MIL-STD-1553B standard bus/controller 16 bits + 4 bit Hamming code

Architecture: fitting and dependable Problems and solutions Fault tolerance Modifiability/Telecharge Chicken & Egg Split Boot Software In charge of booting the system, setting up the communications link with the OBC and managing the application s code. Application Software Gets the lion s share of the DMU operation time. Read from the EEPROM, is totally replaceable from Earth.

As simple as possible... Keep it simple and small Hardware limitations (64 Kb PROM) Design limitations: KISS Thus, minimal footprint and complexity... but not simpler HAL (no room for COTS) Communications layer ASW Management Housekeeping Thus, (non-rt) OS-like functions needed

A baby OS FPGA Magic Uniform access to HW in an almost contiguous memory space. Some addressing quirks. Memory Manager Completes the world-is-flat memory view and exposes shared state (System Data Pool) to external systems (OBC). Multiple tasks We use a simple, polling-based scheduler. Asynchronous, interrupt-driven code minimised. Communications stack on top of the memory-mapped MIL-BUS controller (which uses its own RISC processor), a layered comms protocol: HW, data-link and transport layer using ESA s PUS. If all else fails, a HW watchdog protects us against deadlocks. High-level tasks Notably, the ASW Manager handles remote patching of the ASW, the real application, stored in (modifiable) EEPROM. The BSW life-cycle ends when the ASW Manager loads the ASW into RAM, in an operation analogous to Unix s exec.

The Real (time) Thing

An affordable OS From the SW development s point of view, the key ASW functionality is data acquisition and post-processing from the Laser/Phasemeter at 100Hz Real-time requirements Since we have plenty (1Mb) of space, we can afford a COTS realtime kernel: RTEMS.

Quality matters Quality Assurance is an integral process encompassing all stages of the software development life-cycle. It relies on a series of engineering standards, taylored from ESA templates, and covering all key aspects of the development. Testing is central. Defined in the verification standards, includes thorough unit testing (with processor emulators support) during the coding phase, followed by (module) integration tests (using simulators for all external subsystems communicating with the DMU) and, finally, validation test against the mission requirements. A well defined engineering process is in place, relying on key milestones (PDR, CDR, TRR) with the participation of all stakeholders. All the process is captured in a solid, peer-reviewed documentation set, mimicking the waterfall development model: System Requirements, Software Requirements, Architectural and Detailed Design, Validation and Verification plans.

The software life-cycle (on paper and for real) The ideal waterfall process (left) is the expected outcome of ESA s Engineering Standards. It works as a reporting template for the final product, whose actual development is much closer to the well-known spiral model (right). Especially noteworthy is (unit) testing, which actually drives code writing, in the TDD spirit.

Ward-Mellor structured design

Tools galore: taming code complexity Automatic tools Code coverage (Cantata). 100% execution and branch. Code linting (splint). Metrics extraction: MacCabee, cyclomatic (Cantata). Semi-automatic tools In-code documentation (doxygen). Test libraries, stubbing and drivers (Cantata). Software and documentation distributed version control system (GNU Arch). Plain tools GNU cross-compilation tool chain. ERC32 emulator. L A TEX, a programmable documentation system. MoinMoin WikiWiki, a centralised information repository. Python: gluing it all together.