Project 1: Boot Process of an Embedded System, Its BSP and Development Environment

Total Page:16

File Type:pdf, Size:1020Kb

Project 1: Boot Process of an Embedded System, Its BSP and Development Environment LECTURE: MP-6171 SISTEMAS EMPOTRADOS DE ALTO DESEMPEÑO Project 1: Boot Process of an Embedded System, its BSP and Development Environment Lecturers: MSc. José Araya Martínez MSc. Sergio Arriola-Valverde First term, 2020 0 Contents 1 Introduction3 1.1 Administrative Matters...........................3 1.1.1 Team Formation..........................3 1.1.2 Forum and Communication....................3 1.1.3 Plagiarism.............................4 1.2 Development Environment Overview....................4 1.2.1 Nomenclature............................5 2 Setting up the Host5 2.1 Downloading the VM and Configuring VirtualBox............6 2.2 Version Control: GIT............................7 2.3 Configure Local Area Network with Static IP...............8 2.4 Configure a TFTP Server for File Sharing.................9 2.5 Set NFS for Mounting a Remote File System............... 10 2.6 Installing the Eclipse IDE for C/C++ Developers............. 10 3 Setting up our Embedded System and its Board Support Package 11 3.1 Using a Pre-compiled Image: Raspbian.................. 12 3.2 Establishing UART Connection with the RPI............... 13 3.3 How Does an Embedded Device Boot?................... 16 3.3.1 The Specific Case of the Raspberry Pi 4.............. 18 3.4 First Stage Bootloader: BootROM..................... 19 3.5 Second Stage Bootloader: Das U-Boot................... 19 3.5.1 Toolchain for Cross-Compilation................. 20 3.5.2 Cross-compiling U-Boot...................... 21 3.5.3 Configuring our Target to Load U-Boot.............. 22 3.5.4 Configuring Static IP in U-Boot.................. 24 3.6 The Linux Kernel.............................. 25 3.6.1 Cross-compiling the Linux Kernel................. 26 3.6.2 Loading Kernel from TFTP.................... 29 3.7 YOCTO, File System and the Toolchain.................. 32 3.7.1 Generating a File System with Yocto............... 32 3.7.2 Deploying a Remote Network File System (NFS)......... 36 3.7.3 Configure the Embedded System to mount a NFS......... 37 3.8 Testing the Target’s SSH Server...................... 40 3.9 Cross-compiler and Toolchain....................... 40 3.9.1 Install the Generated ARM Toolchain............... 40 3.9.2 Yocto Plugin for the Eclipse IDE.................. 42 1 0 3.9.3 Configuring the Yocto Plugin and Create Example Project.... 42 4 Create a Custom Meta-Layer in Yocto 44 5 The Application: Composite Trapezoidal Numerical Integration 45 5.1 Motivation and Description......................... 46 5.2 Prototyping and Programming Process................... 46 5.2.1 Prototyping............................. 47 5.2.2 Programming............................ 47 6 Deliverables and Grading 48 6.1 Work flow requirements........................... 48 6.2 Folder Structure of your Deliverables.................... 49 6.3 Grading................................... 50 6.4 Deliverables Submission.......................... 50 2 1.1.2 1 Introduction In this project, each team will be guided through the process of bringing up an embedded system. During the project we will learn what is the common boot process of an industrial embedded device and the specific case of the Raspberry Pi 4 (RPI4), additionally the students will need to make use of the widely-used Linaro cross-compilation toolchain and throw some light on the powerful but complex Yocto Project. All this without forgetting to keep an eye on the code’s version control as is usual in every serious development team nowadays. The students will be guided through the setup of a cross development environment (host and target). For this, we will go through the compilation and configuration of the multiple software components needed to orchestrate a cross development environment with the ultimate purpose of developing and optimizing our own application. Towards the end of the project, each team will implement an application using the Trape- zoidal Numerical Integration concept. To do so, we will first prototype our application in a high-level programming language, then we will implement using the more efficient C language and at the end we will include it into our custom File System as a standard application of our Linux distribution. 1.1 Administrative Matters Before we get down to business, some administrative affairs are to be discussed: 1.1.1 Team Formation Work teams of 2 students should be made up. Please send as soon as possible a list with the team members and their respective Email (the one associated with GIT) to the following Email Addresses: [email protected] and [email protected]. 1.1.2 Forum and Communication This project will be evaluated remotely, for this reason having a suitable online platform turns out to be very important to facilitate the communication between students and lec- turers. In order to do so, we will adopt a "community" approach by means of a forum in the TecDigital platform. In the forum, all students can create new topics as questions arise. All discussions are public to all the course members so that any fellow student can answer and/or add more information to the proposed question. Please avoid sending project- related queries directly to the lecturers Email, as this prevents other students to benefit from the answer. In the forum we all are a team! The only restriction is to not share 3 1.2 working source code in the forum, instead, we can create discussion and propose ideas and concepts that lead to the solution. 1.1.3 Plagiarism Any evidence of plagiarism will be thoroughly investigated. If it is corroborated, the team will receive a zero grade in the project and the incident will be communicated to the corresponding institutional authorities for further processing. 1.2 Development Environment Overview Embedded systems are ubiquitous; they are present everywhere in our daily-life activities. This project will introduce students in both: the setup of the development environment and some best design and implementation practices concerning embedded systems. A Raspberry Pi 4 will be used as target platform. As Figure1 shows, our development environment consists of two main components: • Host: Serves as main development platform. As it typically has more computing capacity than the target, all the design and implementation will be done here. • Target: This is the test and debug environment. Once a design phase has been concluded, the target platform is used as a test system. Here we validate correct functioning, profile and benchmark our application. It is even possible to measure the energy and efficiency of our algorithms for energy-aware applications. Figure 1: General view of the development environment It is worth noting that there are 2 connections between the host and target: • UART: Thanks to its simplicity, this is usually the first communication established with the target even at early stages of the board bring-up. It will serve to send commands to the bootloader and get logging information of the boot process. 4 2.1 • Ethernet: Because UART does not a allow a high transfer rate (normally up to a range of hundreds of kBps), we need a faster communication method to share large files in a reasonable amount of time. For this reason the TFTP protocol will be used over Ethernet to share the device tree and Linux kernel at boot time. In addition the Target will mount a File System present in the Host over the NTFS protocol. 1.2.1 Nomenclature As we will work with different command-line consoles during the setup of the develop- ment environment, it is necessary to specify where the commands are to be executed. Table1 summarizes the prompt symbols for the different command-line consoles. Table 1: Prompt symbols for the multiple command-line consoles during the project. Prompt symbol Description $ Host Linux PC => Target: U-Boot @ Target: Linux 2 Setting up the Host Once we have reviewed the main hardware components of our set up, it is time to check that all required software is installed in the host to support our development. In order to carry out the installation process quickly, a virtual machine (VM) with some pre-installed software will be provided. Besides making the installation easier, a virtual machine isolates many potential problems from our native system and allows us all to have the same base configuration to avoid version mismatch of software tools. Only this Virtual Machine will be supported during the project, due to time and resource limitations we cannot attend questions if you decide to go for a native installation. Please note the following concerning the virtual machine: • Any reference to host in this document will refer to this virtual machine. • Using the provided VM is highly recommended. However, if for any reason you prefer to use a native Ubuntu installation please make sure your system match: – Ubuntu 18.04.4 LTS – GIT 2.17.1 – Eclipse for C/C++ Developers 5 2.1 2.1 Downloading the VM and Configuring VirtualBox 1. Downloading the .zip: Please go to the following link and download the .zip file. 2. Extracting the files: As the download is available to everyone, the .zip file is pro- tected with a password. Unpack all contents of the .zip file in a hard drive with at least 180GB of free space (it can also be an external HD). The provided virtual hard drive (.vdi file) allocates memory dynamically as needed up to 256GB. Password: MaesTria_TeC 3. Install VirtualBox: Download the VirtualBox 5.2 or greater (for instance 6.0 ver- sion) binaries matching your current operating system from here and install the application. 4. Create a new VM in your VirtualBox: Go to Machine ! New (a) Name: Ubuntu18.04 ! Type: Linux ! Version Ubuntu (64-bit). (b) Select a RAM memory of at least 4GB. Warning: Never go beyond the green limit of VirtualBox. If you cannot assign 4GB of RAM to your virtual machine, you can try with less but it will be much slower and the compilation process might fail in Sections 3.6.1 and/or 3.7.
Recommended publications
  • Enea® Linux 4.0 Release Information
    Enea® Linux 4.0 Release Information 4.0-docupdate1 Enea® Linux 4.0 Release Information Enea® Linux 4.0 Release Information Copyright Copyright © Enea Software AB 2014. This User Documentation consists of confidential information and is protected by Trade Secret Law. This notice of copyright does not indicate any actual or intended publication of this information. Except to the extent expressly stipulated in any software license agreement covering this User Documentation and/or corresponding software, no part of this User Documentation may be reproduced, transmitted, stored in a retrieval system, or translated, in any form or by any means, without the prior written permission of Enea Software AB. However, permission to print copies for personal use is hereby granted. Disclaimer The information in this User Documentation is subject to change without notice, and unless stipulated in any software license agreement covering this User Documentation and/or corresponding software, should not be construed as a commitment of Enea Software AB. Trademarks Enea®, Enea OSE®, and Polyhedra® are the registered trademarks of Enea AB and its subsidiaries. Enea OSE®ck, Enea OSE® Epsilon, Enea® Element, Enea® Optima, Enea® Linux, Enea® LINX, Enea® LWRT, Enea® Accelerator, Polyhedra® Flash DBMS, Polyhedra® Lite, Enea® dSPEED, Accelerating Network Convergence™, Device Software Optimized™, and Embedded for Leaders™ are unregistered trademarks of Enea AB or its subsidiaries. Any other company, product or service names mentioned in this document are the registered or unregistered trade- marks of their respective owner. Acknowledgements and Open Source License Conditions Information is found in the Release Information manual. © Enea Software AB 2014 4.0-docupdate1 ii Enea® Linux 4.0 Release Information Table of Contents 1 - About This Release .....................................................................................................
    [Show full text]
  • Creating a Custom Embedded Linux Distribution for Any Embedded
    Yocto Project Summit Intro to Yocto Project Creating a Custom Embedded Linux Distribution for Any Embedded Device Using the Yocto Project Behan Webster Tom King The Linux Foundation May 25, 2021 (CC BY-SA 4.0) 1 bit.ly/YPS202105Intro The URL for this presentation http://bit.ly/YPS202105Intro bit.ly/YPS202105Intro Yocto Project Overview ➢ Collection of tools and methods enabling ◆ Rapid evaluation of embedded Linux on many popular off-the-shelf boards ◆ Easy customization of distribution characteristics ➢ Supports x86, ARM, MIPS, Power, RISC-V ➢ Based on technology from the OpenEmbedded Project ➢ Layer architecture allows for other layers easy re-use of code meta-yocto-bsp meta-poky meta (oe-core) 3 bit.ly/YPS202105Intro What is the Yocto Project? ➢ Umbrella organization under Linux Foundation ➢ Backed by many companies interested in making Embedded Linux easier for the industry ➢ Co-maintains OpenEmbedded Core and other tools (including opkg) 4 bit.ly/YPS202105Intro Yocto Project Governance ➢ Organized under the Linux Foundation ➢ Split governance model ➢ Technical Leadership Team ➢ Advisory Board made up of participating organizations 5 bit.ly/YPS202105Intro Yocto Project Member Organizations bit.ly/YPS202105Intro Yocto Project Overview ➢ YP builds packages - then uses these packages to build bootable images ➢ Supports use of popular package formats including: ◆ rpm, deb, ipk ➢ Releases on a 6-month cadence ➢ Latest (stable) kernel, toolchain and packages, documentation ➢ App Development Tools including Eclipse plugin, SDK, toaster 7
    [Show full text]
  • Linux Kernel and Driver Development Training Slides
    Linux Kernel and Driver Development Training Linux Kernel and Driver Development Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 9, 2021. Document updates and sources: https://bootlin.com/doc/training/linux-kernel Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/470 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/470 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/470 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • Fixing USB Autosuspend Serge Y
    Fixing USB Autosuspend Serge Y. Stroobandt Copyright 2015–2017, licensed under Creative Commons BY-NC-SA Problem The Linux kernel automatically suspends USB de- vices when there is driver support and the devices are not in use.1 This saves quite a bit of power. How- ever, some USB devices are not compatible with USB autosuspend and will misbehave at some point. Af- fected devices are most commonly USB mice and keyboards.2 Personally,I had only one Microsoft™ Wheel Mouse Optical affected, despitewning o other mod- els of the same brand. In essence, this is not really a USB hardware problem, but perhaps more a Lin- ux problem. The actual fault lies with a misinterpretation of the eXtensible Host Controller Interface (xHCI) specification. This issueviousl pre y did not exist with the older Enhanced Host Controller Interface (EHCI) specification. A «Sharp» explanation is available online.3 The Linux kernel patch for this problem will probably one day automatically trickle in downstream and onto my affectedubuntu X LTS 14.04 system. Nonetheless, with a crashing computer mouse at hand, things cannot wait. However, patching my current 3.13.0-35-generic x86_64 kernel is out of the question! We will rather grab this opportunity to learn a bit about writing rules for udev , the device manager for the Linux kernel. I am writing “for the Linux kernel”, because udev executes entirely in user space. Identify the device First, one needs to properly identify the affected USBvice de by its vendor and product ID. Run the following command and look for the device description.
    [Show full text]
  • Enhanced Embedded Linux Board Support Package Field Upgrade – a Cost Effective Approach
    International Journal of Embedded Systems and Applications (IJESA), Vol 9, No.1, March 2019 Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effective Approach Kantam Nagesh1, Oeyvind Landsnes2, Tore Fuglestad2, Nina Svensen2 and Deepak Singhal1 1ABB Ability Innovation Center, Robotics and Motion, Bengaluru, India 2ABB AS, Robotics and Motion, Bryne, Norway ABSTRACT Latest technology, new features and kernel bug fixes shows a need to explore a cost-effective and quick upgradation of Embedded Linux BSP of Embedded Controllers to replace the existing U-Boot, Linux kernel, Dtb file, and JFFS2 File system. This field upgrade technique is designed to perform an in-the-field flash upgrade while the Linux is running. On successful build, the current version and platform specific information will be updated to the script file and further with this technique the file system automates the upgrade procedure after validating for the version information from the OS-release and if the version is different it will self-extract and gets installed into the respective partitions. This Embedded Linux BSP field upgrade invention is more secured and will essentially enable the developers and researchers working in this field to utilize this method which can prove to be cost-effective on the field and beneficial to the stake holder. KEYWORDS Embedded Linux, Upgrade, Kernel, U-boot, JFFS2 File system. INTRODUCTION Embedded systems form an essential part of the connected world. 1, 2 BSP (Board Support Package) is a collection of binary code and supported files which are used to create a Linux kernel firmware and filesystem images for a particular target.
    [Show full text]
  • A Real Time Operating System on the Raspberry Pi
    EPiC Series in Computing Volume 58, 2019, Pages 8{16 Proceedings of 34th International Confer- ence on Computers and Their Applications RealPi - A Real Time Operating System on the Raspberry Pi Samuel Delaney, Dwight Egbert, and Frederick C. Harris, Jr. Department of Computer Science and Engineering, University of Nevada Reno, NV 89557, USA [email protected] [email protected] [email protected] Abstract Academia has always sought to ride the line between established thought and new developments. No much more so than in the terms of technology. Universities seek to teach using known and proven methods and resources but also stay relevant with new technologies to provide students the knowledge they will need to be competitive in the work place or graduate field. In this work we will present how the University of Nevada approaches this problem with its Real Time Operating system course. Namely on how using the established Micro C/OS II Real time Operating System with the new builder phenomena the Raspberry Pi we can overcome the challenge of updating a tried and true lesson plan in order to use technology relevant and interesting to the students of today. 1 Introduction All Computer Science and Computer Engineering disciples have encountered the \real time" catchphrase at least once in their career. Whether that experience equates to a simple buzz word or a fundamental understanding is beyond the scope of this article but none the less the concept has a claim to key concepts in the computing world. As technology has advanced and computers become faster and more efficient they allow us more room to error in our programming and still produce acceptable response times.
    [Show full text]
  • AVR32737: AVR32 AP7 Linux Getting Started
    AVR32737: AVR32 AP7 Linux Getting Started Features 32-bit • Linux development tools overview • Introduction to the Linux boot process Microcontrollers • Compiling, running and debugging applications 1 Introduction Application Note This application note is aimed at helping the reader become familiar with Linux® development with the Atmel AVR®32 AP7 Application Processor. Rev. 32091A-AVR32-02/08 2 Development Tools The software provided with this application note requires the following components to be available. 2.1 Your personal computer (PC) Developing Linux applications for embedded systems is most conveniently done on a Linux development host. It is recommended that developers install, use and become familiar with Linux on the Desktop PC. This can typically be done through the use of a pre-made Virtual Machine image running inside the existing operating system or by installing a Linux distribution (Ubuntu, Fedora, Debian or other) in a dual-boot configuration on the PC. 2.2 AVR32 Linux BSP The AVR32 Linux BSP is a collection of everything you need to start Linux development on the AVR32 AP7 platform. It includes the AVR32 GNU Toolchain, the Linux kernel, the U-Boot boot loader as well as an assortment of useful applications. It also comes with a set of scripts to rebuild the whole environment from scratch. 2.2.1 Buildroot Buildroot is an open-source project, used by Atmel to build its Linux board support packages for development kits and reference designs. Buildroot is a configurable and fully automated build system for embedded systems. The main idea is that the user selects what he wants installed on the system, and buildroot takes care of compiling everything from sources, creating a custom file system image that can be programmed into flash, put on an MMC/SD card, or unpacked on an NFS server.
    [Show full text]
  • Powerkap - a Tool for Improving Energy Transparency for Software Developers on GNU/Linux (X86) Platforms
    Project Report Department of Computing Imperial College of Science, Technology and Medicine PowerKap - A tool for Improving Energy Transparency for Software Developers on GNU/Linux (x86) platforms Author: Supervisor: Krish De Souza Dr. Anandha Gopalan Submitted in partial fulfilment of the requirements for the M.Eng Computing 4 of Imperial College London Contents 1 Introduction 6 1.1 Motivation . .6 1.2 Objectives . .7 1.3 Achievements . .7 2 Background 9 2.1 The relationship between power and energy. .9 2.2 Power controls on x86 platforms . .9 2.3 Improving software for power efficiency . 10 2.3.1 Algorithm . 10 2.3.2 Multithreading . 10 2.3.3 Vectorisation . 10 2.3.4 Improper sleep loops . 12 2.3.5 OS Timers . 13 2.3.6 Context aware programming . 13 2.4 Current methods of monitoring energy. 14 2.4.1 Out of Band Energy Monitor . 14 2.4.2 In-Band Energy Monitor . 14 2.4.2.1 Powertop . 15 2.4.2.2 Turbostat . 16 2.5 Related Work . 16 2.5.1 ENTRA 2012-2015 . 16 2.5.1.1 Common Assertion Language . 16 2.5.1.2 Compiler Optimisation and Power Trade-offs . 18 2.5.1.3 Superoptimization . 18 2.5.1.4 Thermal trade-off . 20 2.5.2 eProf . 20 2.5.2.1 Asynchronous vs Synchronous . 20 2.5.2.2 Profiling implementation . 21 2.5.3 Energy Formal Definitions . 21 2.5.3.1 Java Based Energy Formalism . 22 2.5.3.2 Energy Application Model . 22 2.5.4 Impact of language, Compiler, Optimisations .
    [Show full text]
  • SUSE Linux Enterprise Server 12 SP4 System Analysis and Tuning Guide System Analysis and Tuning Guide SUSE Linux Enterprise Server 12 SP4
    SUSE Linux Enterprise Server 12 SP4 System Analysis and Tuning Guide System Analysis and Tuning Guide SUSE Linux Enterprise Server 12 SP4 An administrator's guide for problem detection, resolution and optimization. Find how to inspect and optimize your system by means of monitoring tools and how to eciently manage resources. Also contains an overview of common problems and solutions and of additional help and documentation resources. Publication Date: September 24, 2021 SUSE LLC 1800 South Novell Place Provo, UT 84606 USA https://documentation.suse.com Copyright © 2006– 2021 SUSE LLC and contributors. All rights reserved. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”. For SUSE trademarks, see https://www.suse.com/company/legal/ . All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its aliates. Asterisks (*) denote third-party trademarks. All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its aliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof. Contents About This Guide xii 1 Available Documentation xiii
    [Show full text]
  • The Ultimate Guide to Software Updates on Embedded Linux Devices
    The ultimate guide to software updates on embedded Linux devices foss-north 2018 Mirza Krak Session Overview ● Intro ● Basics ● FOSS ecosystem ○ Strategy ○ Key Features ○ Community 2 Mirza Krak ● FOSS enthusiast ● Board Support Package development ● Linux kernel developer ● Yocto/OE-core ● Disclaimer: Mender community member 3 Embedded Linux Devices @internetofshit 4 Embedded Linux environment ● Remote in some cases ○ No physical access to devices ● Long life span ○ 5-10 years ● Unreliable power supply ○ Power loss at any given time ● Unreliable network ○ Mobile ○ Low bandwidth 5 Why do we need update software? ● Fixing issues (bugs) ● Feature growth ● Security updates 6 Software update on-site ● No connectivity ● Easy access to an device ● USB Flash drive ● Technician 7 Software updates (OTA) ● No easy access to device ● Deployment management server ○ status reports ○ current versions 8 What to we need to update? U-boot Linux + DTB Root file-system (distro) Root file-system (apps) MCU/FPGA 9 Requirements (basic) ● Able to update all components ○ Unsafe to update bootloader ● Never render the device unusable (brick) ○ Fail-safe ● Atomic updates ○ No partial install ● Roll-back ○ Not always possible ● Integrity check ● Signed images ○ Trusted images ● Compatibility check ● Persistent data storage 10 Requirements (basic OTA) ● Secure communication channel ○ Encrypted ● Device Authentication (trust) 11 Alternative approaches ● Image/block based updates ○ Easy to implement, test, verify and maintain ● Incremental atomic image upgrade mechanism
    [Show full text]
  • NASA/GSFC's Flight Software Core Flight System Community
    NASA/GSFC’s Flight Software Core Flight System Community David McComas [email protected] Flight Software Systems Branch NASA/Goddard Space Flight Center Flight Software Workshop December 16-18, 2014 Beckman Institute at Caltech Pasadena, California Goddard Space Flight Center/Flight Software Systems Branch – Please do not reproduce Page 1 CFS Overview • After 15 years and over 10 missions of “clone and own” Goddard’s FSW Systems Branch recognized the need to develop a product line approach towards FSW – Smaller budgets and shorter schedules demanded a change • CFS uses a layered architecture and configuration parameters to provide both platform and project independence – Layers hide implementation and technology details • Internals of a layer can be changed -- without affecting other layers’ internals and components. • Enables technology infusion and evolution. – Heritage analysis performed on many components to derive common and variable features – Variability implemented by component inclusion and build/runtime configuration parameters • In February 2012 the NASA Software Architecture Review Board (SARB) published their assessment of the CFS – “…Given these qualities, cFE/CFS has the potential to become one of the dominant architecture frameworks for NASA flight software (and simulation and test software).” Goddard Space Flight Center/Flight Software Systems Branch – Please do not reproduce Page 2 NASA CFS Workshop Highlights • Multi-NASA Center workshop held from 12/3/14 – 12/5/14 at Glenn Research Center – Attended by ARC,
    [Show full text]
  • Intel® Edison Board Support Package User Guide September 2014 2 Document Number: 331188-001
    Intel® Edison Board Support Package User Guide September 2014 Revision 001 Document Number: 331188-001 Notice: This document contains information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a design with this information. INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. A “Mission Critical Application” is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL’S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS. Intel may make changes to specifications and product descriptions at any time, without notice.
    [Show full text]